Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to control who can download a file via an app (as if it was held on the local FS). What's the right approach for doing this, considering S3 can't be mounted as a POSIX compliant file system?

share|improve this question
Read the S3 docs, ask again on stackoverflow. I am pretty sure there is some form of API that requires a cookie that you would set in an application. – Zoredache Oct 4 '11 at 20:55 – Zoredache Oct 4 '11 at 20:56

You can mount S3 buckets as local filesystems using the s3fs software.

Make sure you use appropriate permissions on the bucket and files so that the public cannot access your files.

You could further control who has what type of access to which buckets using AWS IAM and distribute appropriate credentials for use with s3fs.

That said, it isn't clear that mounting as a file system is exactly what you need since you haven't expressed your original project requirements. "Downloading a file via an app" can be done with special URLs in S3 that include key signatures and even expiration times.

share|improve this answer
Sorry, I'm looking for a scalable data store for users to upload files but where we can easily control who sees what. Normally you would do this with a file handler in your app, but this would go back to a part of the fs which only the app would have access to, so it could control the streams on demand. Typically, an application like this would use a gluster-type or isilon-type filesystem because it is POSIX compliant, making this easy, but S3 is both cheaper and easier from a management perspective. – chrism2671 Oct 5 '11 at 7:51

S3 offers a number of different ways to control who sees what including: bucket policies, IAM, ACLs, and query strings. You aren't giving enough information about your application requirements to be able to recommend a specific approach, so I'd recommend studying the S3 documentation and figuring out which one works best for your situation.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.