Steps to reproduce:
- set up S3 bucket
- set up streaming disrtibution
- generate cloudfront key pair
- download .PEM file with RSA Private key
- generate XML from RSA key using http://www.jensign.com/opensslkey/opensslkey.cs
- upload file "testUnsecure.flv", set ACL properties so that everyone can view it.
Set up a webpage with following java script:
var p = flowplayer("rtmpPlayer", { src: "flowplayer-3.1.5.swf", height: "480px" }, { plugins: { rtmp: { url: 'flowplayer.rtmp-3.1.3.swf', netConnectionUrl: 'rtmp://s3py83uop6xa8x.cloudfront.net/cfx/st', objectEncoding: '0' } }, clip: { autoPlay: false, url: 'flv:testUnsecure' , provider: 'rtmp' } });
This works!
Then did this:
- Upload testSecure.flv, set ACL to make it private
- Generate Signed URL and build the string. url in the javascript looks like this:
url:'flv:testSecure%3fExpires%3d1277469187%26Signature%3dE5OleaO26fwLi6jIKTa4inc8I4P86AgTg5x8SmleTSTyf5C5AfnQyqaFXLDjiF0kiqdplhauA8Kw%7eS37EpRBAn-aJrJScVlw7aZ-SAL24MTLMZ9foSkCd2ai9KjS8AuuweJRwPWmf4eLDpI4X4f3k3H7UUVcq8SX92ed5fCB91w_%26Key-Pair-Id%3dAPKAJUIBASIKTLFDSDFA'
This fails. The video just hangs there....
Does anyone know how to
- Generate a signed URL for a private video using C#?
- Play the video in either Flowplayer or JWPLayer (i'll use whichever one I can get it to work with!)
A few more points -- I use code identical to this to generate the Signed URL: http://beckelman.net/post/2010/03/30/Policy-Signing-in-C-for-Streaming-Private-Content-From-Amazon-CloudFront.aspx
I will buy a round of drinks for everyone who lives within 100 miles of me if you guys can solve this.
Right - just in case anyone stumbles across this and has the same problem, this is what I did to fix it:
Otherwise the above code was actually correct.