upload - 如何批量上传到 s3?

标签 upload amazon-s3 performance bulk

我最近重构了一些代码,使用“加载数据”将行填充到数据库中,效果很好 - 但是对于我拥有的每条记录,我必须将 2 个文件上传到 s3 - 这完全破坏了惊人的速度升级我正在获得。虽然我每秒能够处理 600 多个文档,但由于 s3,它们现在只能每秒处理 1 次。

您对此有何解决方法?查看 API,我发现它主要是 RESTful,所以我不确定该怎么做——也许我应该将所有这些都放入数据库中。文本文件通常不超过1.5k。 (我们填充的另一个文件是文本的 xml 表示形式)

我已经将这些文件缓存在对我的网络服务器的 HTTP 请求中,因为它们被大量使用。

顺便说一句:我们当前的实现使用 java;我还没有尝试过线程,但这可能是一个选择

有什么建议吗?

最佳答案

您可以使用 JetS3t 的 [putObjects][1] 函数一次上传多个文件。

或者,您可以使用后台线程从队列上传到 S3,并通过将数据加载到数据库的代码将文件添加到队列。

[1]:http://jets3t.s3.amazonaws.com/api/org/jets3t/service/multithread/S3ServiceMulti.html#putObjects(org.jets3t.service.model.S3Bucket , org.jets3t.service.model.S3Object[])

关于upload - 如何批量上传到 s3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/667478/

相关文章:

c# - 为什么 List.Sum() 与 foreach 相比性能较差?

java - joda-time DateTime.with*() 的性能问题

python-3.x - Botocore 与 Heroku : botocore. 异常发生错误。NoCredentialsError:无法找到凭据

css - Netbeans - 设置元素以在更改 scss 文件时上传相关的 css 文件

用于文件上传的 ASP.Net 页面在日志语句中间停止处理

C# HttpWebRequest 表单上传

amazon-web-services - S3 存储桶/AWS 账户的所有者*名称*来自哪里?

python - ValueError : the bucket does not exist,或被禁止访问'调用CreateMultipartUpload时发生错误(AccessDenied)

javascript - 我可以使用哪些基于浏览器的工具来检查 JavaScript 代码的效率和内存使用情况?

java - 如何使用 Java 将 url(http 文件)上传到我的网络服务器?