私はS3バケットにファイルを転送するコードを持っていますが、今はファイルを2つのS3バケット(バケットAとバケットB)に同時に転送する必要があります。同じことを行う簡単な方法は、2番目のバケットのファイルを転送するコードを書き直しますが、私はこれをやりたくありません。それをスマートに行うための他の方法はありますか? 何か助けや助言をいただければ幸いです。事前に感謝phpで同時にローカルストレージから2つのS3バケット(バケットAとバケットB)にファイルを転送するには?
答えて
何を意味するのですか同じ時間に?
ファイルを1つのaws s3バケットに送信するには、リクエストを開始する必要があります.1回のリクエストで1つのバケットにしかファイルをプッシュできないため、2つのリクエストを実行して、バケツ。 「同時に」
シームレス達成するために、あなたが転送オブジェクトがあることを意味GuzzleHttp \約束\ PromisorInterface、のインスタンスであるasync mode
に各要求を実行しているとして、並行して、要求を実行することができますPHPのv3のSDKを使用して転送は非同期に行われ、オブジェクトの約束メソッドを呼び出すことによって開始されます。
$clientA = new \Aws\S3\S3Client([
'region' => 'us-east-1',
'version' => '2006-03-01',
]);
$clientB = new \Aws\S3\S3Client([
'region' => 'us-west-2',
'version' => '2006-03-01',
]);
$source = '/path/to/source/files';
$destA = 's3://bucketA';
$destB = 's3://bucketB';
$managerA = new \Aws\S3\Transfer($clientA, $source, $destA);
$managerB = new \Aws\S3\Transfer($clientB, $source, $destB);
// Initiate the transfer and get a promise.
$promiseA = $managerA->promise();
$promiseB = $managerB->promise();
// Do something when the transfer is complete using the then() method.
$promiseA->then(function() {
echo 'sending to bucket A!';
});
$promiseB->then(function() {
echo 'sending to bucket B!';
});
あなたは別のバケットにコピーしたファイルラムダ関数を作成することができます。実装の例はContent Replication Using AWS Lambda and Amazon S3です。ラムダ関数を使うことで、PHPアプリケーションを変更する必要はありません。
jbirdさん、ありがとう、私はあなたが共有したリンクを通過しましたが、私はすべてのファイルを2番目の送り先バケットに送りたくないので、1つの送り先バケットで送り先バケットと残りのファイルの両方に特定のファイルを送りたいもう1つのことをお聞きしたいと思います。両方の送り先バケットの領域がこのケースで異なる場合は、同じことを達成できますか? –
- 1. 転送S3バケットの内容
- 2. s3バケットからamazon RDSデータベースにファイルを転送
- 3. S3バケットにアップロード
- 4. Unity内のAmazon S3バケット間でファイルを転送する
- 5. Amazon s3とバケット
- 6. はS3バケットにアーカイブファイルをアップロード
- 7. amazon s3バケットにpdfファイルをアップロードする
- 8. S3バケットにファイルをアップロードする - Python Django
- 9. はS3バケットに出力
- 10. Google S3 APIでバケットにアクセス
- 11. S3バケットからのファイルのコピー
- 12. Parse-Server HerokuでホストされているファイルをAWS S3バケットに転送する
- 13. S3バケットからPDFファイルを読む
- 14. jenkinsからS3バケットへファイルをアップロード
- 15. アップロードイメージAWS S3バケット(即時)
- 16. S3バケットからuiTableViewに画像をロード
- 17. apiゲートウェイからS3バケットにバイナリをアップロード
- 18. CNAMEからs3バケットへアマゾン
- 19. multifileからaws s3バケット
- 20. iOS SDKを使用して1つのバケットから別のバケットにAWS S3ファイルをコピーする方法
- 21. NodejsラムダS3バケット
- 22. S3:重複バケット
- 23. 存在しないs3バケットの要求を別のバケットにリダイレクト
- 24. 2つのAmazon S3バケットを同期する最速の方法
- 25. CakePHP 3.0からAWS S3バケットにファイルをアップロードする方法は?
- 26. Amazon S3 - nodejs SDKからバケットにアクセス
- 27. 403 POSTからS3バケットに禁止
- 28. AWSラムダ機能を持つS3バケットからzipファイルをNode.jsで抽出し、別のバケットにアップロード
- 29. RailsがAmazon S3バケットにアップロード
- 30. AWSクラウドフロントS3バケットにリダイレクト
お返事ありがとうございます。はい、間違っていると同時に、同時に同じことを意味します。私はすでに2つの宛先バケットにファイルを送信するこの方法を持っています。これを行うための他の方法はありますか?私はあなたに尋ねたいもう一つのことはありますか?両方の宛先バケットの領域はこのケースでは異なりますが、同じことを達成できますか? –
2つのクライアントを宣言する必要があります(各地域ごとに1つ)。更新された例を参照してください。別の方法として、最初のファイルをアップロードしてイベントをトリガーして他のバケット上のファイルを複製した後にトリガーをかけることはありませんが、これは重複を達成できますが、同時に_これは私がシームレスなリアルタイム –