2013-04-26 2 views
1

Я профилирую свой распространяемый Java-искатель (который хранит обходные документы на S3), а вставка S3 определенно является узким местом. Фактически, при достаточно большом количестве потоков потоки будут последовательно получать исключение тайм-аута из S3 из-за того, что S3 слишком долго считывает данные. Есть ли основная функция putObject, предоставляемая либо Amazon, либо другой библиотекой, которая может сделать это более эффективно?S3 Bulk 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)); 

ответ

1

Я не использовал S3 с Java, но AWS поддерживает многотомные загрузку больших файлов.

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

Библиотека бота для Python не поддерживает это точно. Я использовал его для успешной загрузки очень больших резервных копий базы данных.

После просмотра javadocs для библиотеки java, я думаю, вам может понадобиться использовать http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/UploadPartRequest.html вместо обычного запроса, и вы можете получить многостраничную загрузку.

+0

Я хочу больше по строкам размещения нескольких объектов в одном запросе. В настоящее время я продолжаю получать тайм-аут сокета, потому что у меня более 100 потоков, пытающихся сделать объект сразу. Знаете ли вы, возможно ли это? – Jin

Смежные вопросы