第8章 バケット間でのファイルのコピー
ワークベンチからオブジェクトストア内のバケット間でファイルをコピーするには、copy()
メソッドを使用します。
前提条件
-
odh-doc-examples
リポジトリーをワークベンチにクローンしている。 -
ワークベンチで
s3client_examples.ipynb
ファイルを開いている。 - Boto3 をインストールし、S3 クライアントを設定している。
- コピーするソースファイルのキーと、そのファイルが保存されているバケットを把握している。
手順
ノートブックで、次の指示を参照してバケット間でファイルをコピーします。
#Copying files between buckets #Replace the placeholder values with your own. copy_source = { 'Bucket': '<bucket_name>', 'Key': '<key>' } s3_client.copy(copy_source, '<destination bucket>', '<destination_key>')
copy_source
ブロック内で、例に示すように、<bucket_name>
をソースバケットの名前に置き換え、<key>
をソースファイルのキーに置き換えます。copy_source = { 'Bucket': 'aqs086-image-registry', 'Key': 'series43-image12-086.csv' }
例に示すように、
<destination_bucket>
をコピー先のバケットの名前に置き換え、<destination_key>
をコピー先のキーの名前に置き換えます。コードセルを実行します。s3_client.copy(copy_source, 'aqs971-image-registry', '/tmp/series43-image12-086.csv')
検証
次の指示を参照して、バケット内のオブジェクトをリスト表示します。
#Copy Verification bucket_name = '<bucket_name>' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key'])
例に示すように、
<bucket_name>
を宛先バケットの名前に置き換えて、コードセルを実行します。#Copy Verification bucket_name = 'aqs971-image-registry' for key in s3_client.list_objects_v2(Bucket=bucket_name)['Contents']: print(key['Key']).
コピーしたファイルが出力に表示されます。