Best way to store potentially large user uploaded files for scalability?

view story

http://serverfault.com – I am creating a type of file sharing website. Users will be able to upload files as big as 100 megabytes. I was wondering the best way to store these files. I also need complete access control over the files, so only people with a certain code or token for example can access them (publicly), and to be able to rename the file. I would like the storage system to be scalable. Would it be recommended to store files on a cloud base solution such as Amazon S3? If a large amount of files both in size and number are being uploaded is it more economical to using something like Amazon S3 as opposed to (HowTos)