我最近重构了一些代码,使用“加载数据”将行填充到数据库中,效果很好 - 但是对于我拥有的每条记录,我必须将 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/