かなり基本的な質問ですが、答えが見つかりませんでした。 Transitを使用すると、あるAWSアカウントの1つのS3バケットから別のAWSアカウントの別のS3バケットにファイルを「移動」できますが、実際には、最初のファイルをダウンロードしてから2番目のファイルにアップロードします。
ファイルをダウンロードせずに、あるS3アカウントから別のS3アカウントに直接移動する方法はありますか?
既製のソリューションを探している場合は、これを実行できるいくつかのソリューションがあります。 バケットエクスプローラー MacおよびWindowsで動作し、 アカウント間でコピー 可能 Cloudberry S3エクスプローラー および S3ブラウザー Windowsのみであるため、動作しない場合があります。
AWSコンソール も適切なアクセス許可のセットアップで実行できると思われますが、これはテストしていません。
また、 AWS API を使用して、 書き込み許可 を使用しているAWSアカウントを宛先バケットに指定している場合にも実行できます。
はい、方法があります。見つけるのは難しいですが、非常に簡単です。 8)
たとえば、最初のアカウントのユーザー名が[email protected]で、2番目のアカウントのユーザー名が[email protected]であるとします。
AWS Management Console をacc1として開きます。 Amazon S3バケットのプロパティに移動し、[Permissions]タブで[Add more permissions]をクリックします。次に、「認証済みユーザー」のリストおよび表示権限を追加します。
次に、acc2のAWS IAM(コンソールタブからアクセス可能)で、S3バケットへのフルアクセスを持つユーザーを作成します(より安全にするために、正確なアクセス許可を設定できますが、転送用の一時ユーザーを作成することを好みます)削除します)。
次に、 s3cmd (acc2で新しく作成されたユーザーの資格情報を使用)を使用して、次のようなことを実行できます。
s3cmd cp s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive
すべての転送はAmazon側で行われます。
aws cli (ubuntu 14 ec2インスタンスを使用しました)を使用して、次のコマンドを実行します。
aws s3 sync s3://bucket1 s3://bucket2
一方のアカウントの詳細を指定する必要があり、他方へのパブリック書き込みアクセスまたはパブリック読み取りアクセスが必要です。
これにより、2つのバケットが同期されます。同じコマンドを後でもう一度使用して、すばやく同期できます。最良の部分は、帯域幅を必要としないように見えることです(たとえば、ファイルはローカルコンピューターを通過しません)。
Mac OS Xでは、PanicのTransmitアプリを使用しました。 S3アカウントごとに1つのウィンドウを開きました(APIキーとシークレットを使用)。次に、あるウィンドウの1つのバケットから別のウィンドウの別のバケットにドラッグできます。 最初にローカルでファイルをダウンロードする必要はありません。
Andrewは正しいです。Transmitはファイルをローカルにダウンロードしてから、ファイルをアップロードします。
移行元アカウントと移行先アカウントの2つのアカウントがあると考えてみましょう。そして、2つのバケットsource-bucket
およびdestination bucket
。すべてのファイルをsource-bucket
からdestination-bucket
に移動します。次の手順で実行できます。
aws configure
aws s3 ls s3://source-bucket/
aws s3 cp s3://source-bucket s3://destination-bucket --recursive
aws s3 mv s3://source-bucket s3://destination-bucket --recursive
別の方法として、syncコマンドを使用できます-aws s3 sync s3://source-bucket s3://detination-bucket
より良い説明のために リンク に従ってください
Cyberduck(オープンソース)を使用できます
CrossFTP は、S3ファイルをダウンロードせずにバケット間で直接コピーできます。これは、Windows、Mac、およびLinuxで動作するGUI S3クライアントです。
新しく作成されたファイル(既存のオブジェクトではない)の場合、AWSの新しい機能を利用できます。これは、クロスリージョンレプリケーションです(S3バケットの「バージョン管理」の下)。新しいオブジェクトを別のアカウントのバケットに複製できるポリシーを作成できます。
既存のオブジェクトの場合、AWSが将来これにネイティブ機能を導入しない限り、別の方法を使用してオブジェクトをコピーする必要があります。