30

2 つの個別の AWS アカウントを持つクライアントのためにいくつかの作業を行っています。S3 アカウントの 1 つのバケット内のすべてのファイルを、2 番目のアカウントの新しいバケットに移動する必要があります。

s3cmd では、次の形式を使用してこれが可能であると考えました。

s3cmd cp s3://bucket1 s3://bucket2 --recursive

ただし、これでは 1 つのアカウントのキーしか使用できず、2 つ目のアカウントのアカウントを指定することはできません。

ファイルをダウンロードして2番目のアカウントに再度アップロードせずにこれを行う方法はありますか?

4

5 に答える 5

3

AWS 内の帯域幅はカウントされないため、バケットが同じリージョンにある限り、AWS 内のボックスからすべてを実行することで、お金と時間を節約できます。

ファイルをコンピュータのどこかに置かずにそれを行うことについては、そうは思わないでください。

例外: 彼らはあなたが郵送したハード ドライブから一括アップロードを行うため、バケットからバケットへの転送でも同じことを行う可能性があります。

于 2012-10-03T01:59:33.980 に答える
0

物事をすばやく動かすための簡単なソリューションとして、cloudberrys3explorerを使用することをお勧めします。また、内部のaws帯域幅フリー転送サービスを利用することもできます。

また、cloudberrysdkツールを使用してアプリに統合することもできます。

頑張ってジョン

于 2012-10-03T22:50:06.660 に答える
-11

わかりました、答えを見つけました。これを行う方法は他にもあると思われますが、これは非常に簡単です。

私はs3cmdユーティリティでこれを行うことができましたが、おそらく同様のツールで行うことができます。

s3cmdを構成するときはアカウントのアクセスキーとシークレットアクセスキーを使用して構成します。

転送先のバケットのアカウントを使用して、S3Webコンソールにログインします。

S3Webコンソールにアクセスします。

https://console.aws.amazon.com/s3/home

バケット、[アクション]、[プロパティ]の順にクリックします。

[権限]タブの下部にある[権限を追加]をクリックします。

Set "Grantee" to Everyone

Check "List" and "Upload/Delete"

Save

転送するには、ターミナルから実行します

s3cmd cp s3://from_account_bucket s3://to_account_bucket --recursive

転送が完了したら、すぐにS3コンソールに再度アクセスして、バケットに追加したアクセス許可を削除する必要があります。

ここには明らかにセキュリティ上の問題があります。転送先のバケットは誰でも利用できます。誰かがあなたのバケット名を見つける可能性は低いですが、存在します。

バケットポリシーは、特定のアカウントへのアクセスのみを開くための代替方法として使用できますが、それは私には難しすぎたので、それを理解する必要がある人に演習として残しておきます。

お役に立てれば。

于 2012-10-04T01:03:52.027 に答える