2016-04-15 28 views
0

私はaws s3クライアントの使用に初心者です。私はs3からローカルファイルシステムにファイルのバッチをダウンロードするために "aws s3 cp"コマンドを使用しようとしましたが、かなり高速です。しかし、私は、amazon java sdk APIを使用して、単一のスレッドループ内のファイルのバッチのすべての内容を読み込もうとしましたが、aws s3 cpというコマンドを数回遅らせてください。<aws s3>はマルチスレッドで実装された "aws s3 cp"コマンドですか?

誰でも理由は何か知っていますか?私は

答えて

2

「をAWS S3 CPは、」マルチスレッドされていることを疑っあなたがtransferconfig.pyのソースを見た場合、それがデフォルトであることを示しています

DEFAULTS = { 
    'multipart_threshold': 8 * (1024 ** 2), 
    'multipart_chunksize': 8 * (1024 ** 2), 
    'max_concurrent_requests': 10, 
    'max_queue_size': 1000, 
} 

それはで10個の要求を行うことができることを意味していますまた、ファイルが8MBを超えると、転送が8MB単位でチャンクされることもあります。

これは​​のドキュメントです。 - 同時要求の最大数
max_concurrent_requests:

これらはあなたがS3に設定できる設定値です。
max_queue_size - タスクキュー内のタスクの最大数。 multipart_threshold - CLIが個々のファイルのマルチパート転送に使用するサイズのしきい値。
multipart_chunksize - マルチパート転送を使用する場合、これはCLIが個々のファイルのマルチパート転送に使用するチャンクサイズです。

それはあなたの簡単な方法と比較している場合は、チューニング、それダウンし、参照するにはできます

aws configure set default.s3.max_concurrent_requests 1 

はそれをバックアップし、その後、チューニングすることを忘れないでください、さもなければ、あなたのAWSのパフォーマンスが惨めになります。

+1

「aws s3 sync」コマンドについても言及します。これは、多数のファイル/ディレクトリで作業する場合に便利です。 – Tom

関連する問題