メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

AWS SDK for Ruby を使用したオブジェクトのコピー

以下のタスクは、Ruby のクラスを使用して、 Amazon S3 内のバケット間または同一バケット内でオブジェクトをコピーする手順を示しています。

オブジェクトのコピー

1

AWS 認証情報を指定して、AWS::S3 クラスのインスタンスを作成します。

2

AWS::S3::S3Object#copy_to メソッドまたは AWS::S3::S3Object#copy_from メソッドを実行します。コピー元のバケット名、コピー元のキー名、コピー先のバケット名、コピー先のキー名などのリクエスト情報を提供する必要があります。

次の Ruby サンプルコードは、前のタスクで #copy_to メソッドを使用してバケット間でオブジェクトをコピーする方法を示しています。

Copy
s3 = AWS::S3.new # Upload a file and set server-side encryption. bucket1 = s3.buckets[source_bucket] bucket2 = s3.buckets[target_bucket] obj1 = bucket1.objects[source_key] obj2 = bucket2.objects[target_key] obj1.copy_to(obj2)

次の Ruby サンプルスクリプトは、#copy_from メソッドを使用してオブジェクトのコピーを作成します。異なるキーを使ってコピーしたオブジェクトが、同じコピー元バケットに保存されます。実際に動作するコードを作成、テストする方法については、「AWS SDK for Ruby バージョン 2 の使用」を参照してください。

Copy
#!/usr/bin/env ruby require 'rubygems' require 'aws-sdk' bucket_name = '*** Provide bucket name ***' source_key = '*** Provide source key ***' target_key = '*** Provide target key ***' # Get an instance of the S3 interface. s3 = AWS::S3.new # Copy the object. s3.buckets[bucket_name].objects[target_key].copy_from(source_key) puts "Copying file #{source_key} to #{target_key}."