コピー元S3バケット"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX"に存在するオブジェクト"alpha/0.txt"を、コピー先S3バケット"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX"に"beta/1.txt"としてをコピーします。
手順に必要な設定値を変数に格納をします。
コピー元S3バケット名を指定します。
変数の設定: S3_BUCKET_PREFIX_SOURCE='handson-cli-s3-1st-highlevel' コマンド: aws_id=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${aws_id} 結果(例): XXXXXXXXXXXX 変数の設定: S3_BUCKET_SOURCE="${S3_BUCKET_PREFIX_SOURCE}-${aws_id}" \ && echo ${S3_BUCKET_SOURCE} 結果(例): handson-cli-s3-1st-highlevel-XXXXXXXXXXXX
変数の設定:
S3_BUCKET_PREFIX_SOURCE='handson-cli-s3-1st-highlevel'
コマンド:
aws_id=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${aws_id}
結果(例):
XXXXXXXXXXXX
S3_BUCKET_SOURCE="${S3_BUCKET_PREFIX_SOURCE}-${aws_id}" \ && echo ${S3_BUCKET_SOURCE}
handson-cli-s3-1st-highlevel-XXXXXXXXXXXX
コピー元S3オブジェクトキーを指定します。
変数の設定: S3_OBJECT_SOURCE='alpha/0.txt'
S3_OBJECT_SOURCE='alpha/0.txt'
コピー先S3バケット名を指定します。
変数の設定: S3_BUCKET_PREFIX='handson-cli-s3-1st-highlevel' コマンド: aws_id=$( \ aws sts get-caller-identity \ --query 'Account' \ --output text \ ) \ && echo ${aws_id} 結果(例): XXXXXXXXXXXX 変数の設定: S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${aws_id}" \ && echo ${S3_BUCKET_NAME} 結果(例): handson-cli-s3-1st-highlevel-XXXXXXXXXXXX
S3_BUCKET_PREFIX='handson-cli-s3-1st-highlevel'
S3_BUCKET_NAME="${S3_BUCKET_PREFIX}-${aws_id}" \ && echo ${S3_BUCKET_NAME}
コピー先S3オブジェクトキーを指定します。
変数の設定: S3_OBJECT_KEY='beta/1.txt'
S3_OBJECT_KEY='beta/1.txt'
各変数に正しい設定値が格納されていることを確認します。
変数の確認: cat << END # 1. S3_BUCKET_SOURCE:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_SOURCE="${S3_BUCKET_SOURCE}" # 2. S3_OBJECT_SOURCE:"alpha/0.txt" S3_OBJECT_SOURCE="${S3_OBJECT_SOURCE}" # 3. S3_BUCKET_NAME:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # 4. S3_OBJECT_KEY:"beta/1.txt" S3_OBJECT_KEY="${S3_OBJECT_KEY}" END
変数の確認:
cat << END # 1. S3_BUCKET_SOURCE:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_SOURCE="${S3_BUCKET_SOURCE}" # 2. S3_OBJECT_SOURCE:"alpha/0.txt" S3_OBJECT_SOURCE="${S3_OBJECT_SOURCE}" # 3. S3_BUCKET_NAME:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # 4. S3_OBJECT_KEY:"beta/1.txt" S3_OBJECT_KEY="${S3_OBJECT_KEY}" END
下段の変数が入っていない、もしくは上段と同等の値が入っていない場合は、それぞれの手順番号に戻って変数の設定を行います。
S3オブジェクトをコピーします。
変数の確認: cat << END # S3_BUCKET_SOURCE:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_SOURCE="${S3_BUCKET_SOURCE}" # S3_OBJECT_SOURCE:"alpha/0.txt" S3_OBJECT_SOURCE="${S3_OBJECT_SOURCE}" # S3_BUCKET_NAME:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # S3_OBJECT_KEY:"beta/1.txt" S3_OBJECT_KEY="${S3_OBJECT_KEY}" END コマンド: aws s3 cp \ s3://${S3_BUCKET_SOURCE}/${S3_OBJECT_SOURCE} \ s3://${S3_BUCKET_NAME}/${S3_OBJECT_KEY} 結果(例): copy: s3://handson-cli-s3-1st-highlevel-XXXXXXXXXXXX/alpha/0.txt to s3://handson-cli-s3-1st-highlevel-XXXXXXXXXXXX/beta/1.txt
cat << END # S3_BUCKET_SOURCE:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_SOURCE="${S3_BUCKET_SOURCE}" # S3_OBJECT_SOURCE:"alpha/0.txt" S3_OBJECT_SOURCE="${S3_OBJECT_SOURCE}" # S3_BUCKET_NAME:"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX" S3_BUCKET_NAME="${S3_BUCKET_NAME}" # S3_OBJECT_KEY:"beta/1.txt" S3_OBJECT_KEY="${S3_OBJECT_KEY}" END
aws s3 cp \ s3://${S3_BUCKET_SOURCE}/${S3_OBJECT_SOURCE} \ s3://${S3_BUCKET_NAME}/${S3_OBJECT_KEY}
copy: s3://handson-cli-s3-1st-highlevel-XXXXXXXXXXXX/alpha/0.txt to s3://handson-cli-s3-1st-highlevel-XXXXXXXXXXXX/beta/1.txt
「S3バケット"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX"にオブジェクト"beta/1.txt"が存在する。」ことを確認します。
コマンド: aws s3 ls s3://${S3_BUCKET_NAME} --recursive \ | grep ${S3_OBJECT_KEY} \ | awk '{print $4}' 結果(例): beta/1.txt
aws s3 ls s3://${S3_BUCKET_NAME} --recursive \ | grep ${S3_OBJECT_KEY} \ | awk '{print $4}'
beta/1.txt
S3ダッシュボード( https://console.aws.amazon.com/s3/home )にアクセスします。
左ペインの"バケット"をクリックします。
バケット一覧(画面)
検索欄にバケット名"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX"を入力します。
バケット名"handson-cli-s3-1st-highlevel-XXXXXXXXXXXX"(リンク)をクリックします。
バケット詳細画面
"オブジェクト"タブを表示します。