我最近重构了一些代码,使用“加载数据”将行填充到数据库中,并且效果很好-但是,对于每条记录,我必须将2个文件上传到s3中-这完全破坏了我获得的出色的速度升级。尽管我能够每秒处理600多个这些文档,但是由于s3,它们现在以每秒1个的速度滴入。
您对此有什么解决方法?查看API,我发现它主要是RESTful的,所以我不确定该怎么做-也许我应该将所有这些都粘贴到数据库中。文本文件通常不超过1.5k。 (我们在其中填充的另一个文件是文本的xml表示形式)
我已经在HTTP请求中将这些文件缓存到了我的Web服务器,因为它们已经被大量使用了。
顺便说一句:我们当前的实现使用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/