我知道之前有人问过,但确实没有一个明确的答案。我的问题是我为GAE构建了一个文件上传脚本,之后才发现,你只能将文件存储到aprox。数据存储中有1MB。如果你能告诉我,如果我启用计费,我可以阻止你,1MB限制是历史,但我对此表示怀疑。
我需要能够为每个文件上传最多20mb,所以我想也许我可以使用亚马逊的S3。关于如何实现这一目标的任何想法?
我被告知要使用GAE + Ec2和S3的组合,但我不知道这是如何工作的。
谢谢, 最大
答案 0 :(得分:13)
用户打开Web浏览器并访问您的网页。
您的网页包含一个HTTP表单,其中包含用户将内容上传到Amazon S3所需的所有信息。
用户将内容直接上传到Amazon S3。
GAE准备并提供网页,快速操作。您的用户上传到S3,这是一个冗长的操作,但这是在用户的浏览器和亚马逊之间; GAE没有参与。
S3协议的一部分是 success_action_redirect ,它可以告诉S3在成功上传的情况下瞄准浏览器的位置。该重定向可以是GAE。
答案 1 :(得分:3)
Google App Engine和EC2是竞争对手。他们做同样的事情,虽然GAE为您的应用程序提供了严格的语言限制运行环境,而EC2为您提供了一个虚拟机(想想VMWare)来托管您的应用程序。
另一方面,S3是原始存储API。您可以使用SOAP或REST API来访问它。如果你想坚持使用GAE,你可以简单地使用Amazon S3 Python Library从Python到S3进行REST调用。当然,您必须支付S3的使用费。令人惊讶的是他们的计费方式。开始时我一个月收费4美分。
答案 2 :(得分:2)
为了供将来参考,Google添加了对大文件上传(最多50 MB)的支持:新功能已作为Blobstore API的一部分发布,并在here进行了讨论。
答案 3 :(得分:1)
Adrian Petrescu撰写。从他的网站:
[它]是Amazon Web Services的一个版本 将从内部运行的SDK for Java Google App Engine。这不会 如果您只是简单地包含JAR就可以工作 AWS直接提供给GAE WAR,因为GAE的安全模型 不允许Apache Commons HTTP 客户端创建套接字和 它的低级网络原语 需要建立HTTP 连接;相反,谷歌要求 你通过所有的连接 其URLFetch实用程序
答案 4 :(得分:0)
部分Google App Engine + S3链接:
Previous related post... 10mb limit
This link demonstrates small file uploads。我还没有找到大型上传的例子......
This link显示了不同的方法,(with a fix for a known issue)