我正在尝试从GAE上传文件到亚马逊S3。
我试过官方的amazon sdk(jetS3t,构建在lower-level sdk之上),只是为了发现即使你可以通过在本地JVM上设置权限来让它在本地工作它部署后,GAE加密相关的原因不支持。
然后出于绝望,我发现了一些好的灵魂forked the official low-level amazon sdk,以便它可以与GAE一起使用。这种工作(即使我可以看到一些strage NullPointer异常被抛出)并且文件被上传...但是如果文件大小超过5MB我在API中收到错误:
com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call urlfetch.Fetch() was too large
我不完全理解这一点,因为目前的GAE限制似乎是文件大小上传时为32MB,请求/响应时为1MB,而我的问题仅在文件大约为5MB或更大时发生。
我认为我唯一的选择是jclouds,但我无法找到使用BlobStore库将文件上传到S3的示例。
是否有人有经验/示例与jClouds分享S3文件上传?我是否可能会遇到相同的 urlfetch.Fetch() was too large
错误?
任何帮助表示感谢。
答案 0 :(得分:3)
URLFetch请求限制为5MB,如文档here所述。唯一可行的解决方案是将大型有效负载拆分为较小的块。幸运的是,S3提供了multipart upload API。
答案 1 :(得分:1)
在release notes for 1.5.0上,我读了为响应大众需求,HTTP请求和响应大小已增加到32 MB。因此,请求和响应,URL提取未提及
确实,看URL Fetch documentation,它说它最多5 Mb。