2016-08-23 17 views
5

aws s3バケットに大きなファイルをアップロードする必要があります。 10分ごとに私のコードは元のディレクトリから古いファイルを削除し、新しいファイルを生成します。ファイルサイズは約500 MBです。今私は作成後に各ファイルをアップロードするためにs3.putObject()メソッドを使用しました。私はまた、aws s3の同期について聞いた。そのaws-cliとの来る。 s3バケットにファイルをアップロードするために使用されます。aws s3 putObject vs sync

私はs3アップロード用にnode.jsにaws-sdkを使用しました。 node.jsのaws-sdkにs3-syncメソッドが含まれていません。 s3-syncはs3.putObject()メソッドより優れていますか?私はより速いアップロードが必要です。

答えて

1

はそうすることができますS3バケットにファイルをアップロードするには、事に作るための方法よりも常に多くあります:

  • 使用のAWS CLIとaws s3 cp ...
  • 使用のAWS CLIを実行し、実行aws s3api put-object ...
  • aws SDKを使用してください。

syncメソッドを使用することもできますが、1つのファイルに対してはディレクトリ全体を同期させる必要はなく、generマルチスレッドと同期モノスレッドの恩恵を受けるために、複数のcpインスタンスを起動する方がパフォーマンスが向上すると考えています。

これらのメソッドはすべて、aws S3 API呼び出しのラッパーです。からamazon doc

あなたのコードから直接REST API呼び出しを行うことは面倒なことがあります。あなたの要求を認証するために有効な署名を計算するのに必要なコードを書く必要があります。私たちは、代わりに次の選択肢をお勧めします。

  • は、(サンプルコードとライブラリを参照してください)あなたの要求を送信するためのAWS SDKを使用してください。このオプションを使用すると、SDKクライアントが提供するアクセスキーを使用して要求を認証するため、要求認証用の署名を計算するコードを記述する必要はありません。 AWS SDKを使用することをお勧めします。
  • AWS CLIを使用してAmazon S3 API呼び出しを行います。 AWS CLIの設定とAmazon S3コマンドの例については、次のトピックを参照してください。 「Amazon Simple Storage Service開発者ガイド」のAWS CLIの設定。 「AWSコマンドラインインターフェイスユーザーガイド」のAWSコマンドラインインターフェイスでAmazon S3を使用する

だからAmazonはSDKを使用することをおすすめします。終わりには、あなたが最も快適であることと、このコードを他のプログラムにどのように統合するのかということが本当に重要だと思います。 1回限りのアクションのために、私は常にCLIに行きます。

パフォーマンスの点では、どちらか一方を使用しても、AWS API呼び出しのラッパーにすぎません。転送の最適化については、aws s3 transfer accelerationを参照して、有効にできるかどうかを確認する必要があります。

+0

aws-lambdaにコードをデプロイしました。 sdkまたはaws-cliコマンドはラムダの方がいいですか? –

+0

コードがラムダで実行されている場合、ノードjs sdkは有効な良いオプションです –

+0

fed federic。 –

関連する問題