1

我正在分析我的 Java 分布式爬虫(将爬取的文档存储在 S3 中),而 S3 插入绝对是一个瓶颈。事实上,在线程数足够多的情况下,由于 S3 读取数据的时间过长,线程将始终从 S3 获得超时异常。putObject亚马逊或其他库是否提供了可以更有效地执行此操作的批量功能?

示例代码:

BUCKET = ...; // S3 bucket definition
AmazonS3 client= ...;

InputStream is = ...; // convert the data into input stream
ObjectMetadata meta = ...; // get metadata
String key = ...;

client.putObject(new PutObjectRequest(BUCKET, key, is, meta));
4

1 回答 1

1

我没有将 S3 与 java 一起使用,但 AWS 确实支持大文件的分段上传。

http://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html

Python 的 boto 库确实支持这一点。我以前用它成功地上传了非常非常大的数据库备份。

在查看 java 库的 javadocs 之后,我认为您可能需要使用http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/UploadPartRequest.html而不是定期请求,您可以进行分段上传。

于 2013-04-26T01:14:44.063 回答