2

我正在尝试从 GAE 将文件上传到亚马逊 S3。

我尝试了官方的 amazon sdk(jetS3t,建立在较低级别的 sdk之上),只是为了发现即使您可以通过在本地 JVM 上设置权限来使其在本地工作,GAE 加密相关也不支持部署后的原因。

然后出于绝望,我发现一些好的灵魂分叉了官方的低级亚马逊sdk,以便它可以与GAE一起使用。这种工作(即使我可以看到一些奇怪的 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 错误吗?

任何帮助表示赞赏。

4

2 回答 2

3

URLFetch 请求限制为 5MB,如此所述。唯一可行的解​​决方案是将大的有效载荷分解成更小的块。幸运的是,S3 提供了分段上传 API

于 2011-12-14T00:26:09.843 回答
1

1.5.0 的发行说明中,我阅读了响应流行的需求,HTTP 请求和响应大小已增加到 32 MB。所以,请求和响应,URL fetch 没有提到。

事实上,查看URL Fetch 文档,它说它最大为 5 Mb。

于 2011-12-14T00:28:36.553 回答