2011-11-18 44 views
0

我期待为我的网络应用程序的最终用户提供在应用程序内的PHP页面上拖放文件的功能,并让它们自动上传到S3中进行存储。根据我所能找到的,我会在数据库中存储“指针”到S3文件。任何人都可以指向我的例子/文档或其他可以更好地演示如何在我的应用程序中构建这个?我是S3的新手,所以如果有任何问题和/或更好的文件存储解决方案(便宜的话),我全都是耳朵。PHP&S3:需要架构指导

感谢您的时间和协助。

回答

1

当用户上传文件到您的应用程序时,您的应用程序将文件上传到S3。然后,您的应用程序将该文件的唯一S3 URL存储在您的数据库中。如果你不使用S3,你会做同样的事情,除了参考文件是在本地驱动器上的文件。

然后,无论何时您想将文件提供给任何人,您都可以:a)让您的应用程序从S3检索文件,然后将其提供给您的用户或b)直接向用户提供S3 URL,并且他们可以从S3自己下载它。你使用的将取决于你的具体要求,但选项(b)通常更好,因为它可以让亚马逊做所有的下载工作。 (b)如果您有私人文件不公开可用(如下载文件),甚至可以使用,因为您可以通过URL过期来授予临时访问权限。

在许多情况下,S3将比仅使用本地存储更昂贵。亚马逊的存储定价与零售硬盘价格竞争。但最重要的是,你还要支付S3的带宽费用,这实际上可能会相当昂贵。如果您选择S3因为价格便宜,我认为您选择它是出于错误的原因。您应该选择S3,因为它具有扩展性,容错性,并且您无需考虑增加存储。

+0

谢谢。如果我向用户提供10GB存储空间(ala Dropbox或box.net),即使用户没有使用整个空间,S3still是否是最可行的解决方案? – user464180

+0

似乎Dropbox的工作正常。 S3在这方面很好,因为你只需支付用户实际使用的空间。 –