This project is read-only.

Sharing an S3 account with multiple users (somewhat off topic)

Apr 29, 2009 at 6:23 AM
First of all I've been using John's stuff for months and it just works!  I've got an application ( which stores thousands of video clips for each user. (team) Currently I have each team set up their own S3 account and I manage uploading and bucket creation through this wonderful utility. Basically I have a PC based program that figures out where to put the video clips on their S3 account and then I genereate a map which tells my website where the video for any particular game and play is.  I don't (yet) charge anything for my service and don't mess with any billing.  At some point my plan was to add a yearly service fee but let the end user deal with the S3 costs directly.  However I've had some requests from teams saying because coaches change from year to year they don't have the same natural account holder from year to year and so may lose past years videos.  I have others that just don't want to be bothered with monthly billing from Amazon and would prefer that I set up a system for a yearly fee that covers the typical storage and useage fees.  I have looked at Amazon's DevPay but as far as I can tell that won't work for multiple reasons.  1) No php api and 2) it really isolates you from the customer.  Apparently if a customer misses 3 payments then all data (video) is lost.  I can't afford that.  So anyway I was thinking about a poor man's devpay solution somehow using these tools.  But I'm stymied in figuring it out.  The bruteforce way is to give all my users my keys but now wouldn't that be stupid.  All sorts of potential abuse.  Another thought which still has fraud potential would be not to keep my s3 keys on the local machine but have those retrieved after authentication on my web site and only kept on the local machine while the game is being uploaded.  However it probably wouldn't take much to hijack the keys in this scheme.  Then I was wondering if there was a way to make my s3 account uploads "signed."  Sort of like the existing capability to have a time expired signed read but this would be a time expired timed write to a specific bucket/file.  Anyway just looking for ideas and of course away to continue to use this great product. -steve-
May 5, 2009 at 10:47 PM
Hi John,  I've been told that actually there is a facility to have signed uploads not requiring the s3 secret keys to be exposed.  Apparently one can set up a servlet that passes the file details and returns some sort of auth code allowing for puts within a certain time period.  Turns out my hosted server can't install java for the servlet so I'm out of luck there.  However I can bury my secret key in my application if there was a way to generate the auth code in rescmd and only expose that instead of the secret key.  Is that possible?  (I know one failing of this is if I ever need to change the secret key I will have to update everyone's application.  So not a perfect solution.)  Thx.