0

AWS S3バケットに格納されている膨大な数のファイルを「名前を変更する」必要があります。各ファイル/オブジェクト名の名前は個別に変更されます(特定の基準に基づいて、共通の「接頭辞/接尾辞」はありません)。 CLIのコンソールから.batファイル/キューとして実行できる 'current_filename'と 'new_filename'のリストを思いつきました。AWS S3オブジェクトキー(キー名)

質問: それは以下のように/移動ファイルをコピーする必要がなくて、CLIまたはプロ文法を経由してAWS S3バケットにちょうどオブジェクトキー(キー名)を更新することが可能です:

AWS S3 CP S3: //mybucket/folder/myfilename.jpg
S3://mybucket/folder/my_NEW_filename.jpg私は他のすべてのオブジェクトを保持することができます

は同じメタデータが、ファイル名(キー名)は変更することがあります。

お知らせください。

SP

答えて

0

オブジェクト/アマゾンS3のファイルは不変であり、に追加または を変更することはできません。追加をシミュレートするには、 ファイル全体を追加のデータで書き直す必要があります。

名前を変更するには、別のオブジェクトにコピーする必要があります。 ローカルにコピーして後ろに移動するのではなく、s3バケット間を移動すると効率的です。

同様の状況に遭遇しましたが、どのようにすべてのファイルを変更するのですか。すべてのS3キーをグループ化して名前の変更を並行して実行するには、パターンを見つける必要があります。これは分散システムの美しさです。

日付/時間/ 15分パターンで保存しました。私たちはcliを通して同時に名前を変更することで、名前の変更を並行して実行することができました。

希望します。

+0

迅速な対応と経験の共有に感謝します。 同じ(本番)バケット内でcpを使用することをお勧めしますか、他のバケットにコピーしてから本番環境に複製してください。 同じ(生産)バケット内でmvを使用する方が良いと思いますか? 「名前を変更する」が完了した後に元の(ソース)ファイルは必要ありませんが、運用データを扱う障害のリスクを軽減しようとしています。 ありがとう、 SP – spcs1971

+0

私たちが使用したプロセスをダブルチェックしました。移動を実行すると、コピーして削除します。システムプロセスにはショートカットはありません。コピーを実行すると、コマンドの失敗から保護されます。 GetMd5、copy、verifyMd5、およびdeleteを推奨します。ソースMD5と宛先MD5が一致し、オブジェクトが削除できます。 – Kannaiyan

0

また、AWS S3 Moveコマンドを使用して、ファイルをコピーおよび削除するのではなく、新しい名前にファイルを移動することもできます。 AWS S3 Move

# AWS Example 
aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt 

# Copy file from local to S3 
aws s3 cp robots.txt s3://ascisolutions.com 

# Rename/move file 
aws s3 mv s3://ascisolutions.com/robots.txt s3://ascisolutions.com/robots.txt.bak 

# Move file to a directory in S3 
aws s3 mv s3://ascisolutions.com/robots.txt.bak s3://ascisolutions.com/test/robots.txt.bak 

# Rename/move file 
aws s3 mv s3://ascisolutions.com/test/robots.txt.bak s3://ascisolutions.com/test/robots.txt 

# Move file back to root directory of S3 bucket 
aws s3 mv s3://ascisolutions.com/test/robots.txt s3://ascisolutions.com/robots.txt