目次
前提
コマンドの実行にはAWS CLIのインストールが必要です。
CloudShellにはデフォルトでインストールされています。
EC2のLinux,WindowsでもAWS CLIがインストールされていれば使用できます。
AWS CLIがインストールされているかは次のバージョン確認のコマンドを入力します。
AWS CLIのバージョンを確認する
aws --version
aws-cli/2.15.10 Python/3.11.6 Linux/6.1.66-91.160.amzn2023.x86_64 exec-env/CloudShell exe/x86_64.amzn.2023 prompt/off
AWS CLIがインストールされている場合、上記のようにaws-cliのバージョン(2.15.10等)が表示されます。
プログラムとバージョンはスラッシュ(/)で区切られています。
S3の一覧を表示する(aws s3 ls)
aws s3 ls |
一覧の表示はaws s3 lsコマンドを実行します。
バケットの一覧を表示
aws s3 ls
2023-01-26 00:30:53 test-s3-data-2022
2022-08-27 23:33:42 test-s3-data-glacier-2022
2022-08-28 00:41:29 test-s3-data-glacier-deep-2022
aws s3 lsの引数無しはバケットの一覧を表示します。
バケット内の一覧を表示
aws s3 lsの後ろにバケット名を指定するとバケット内部の一覧が表示されます。
aws s3 ls test-s3-data-2022
2023-01-26 00:31:58 7 aaa.txt
2022-07-14 01:36:42 774 aws-test1.png
2023-03-09 00:53:28 13 test1.txt
バケット内のフォルダ内を表示
aws s3 ls test-s3-data-2022/folder1/
2023-05-31 13:39:59 3 test1.txt
バケット名とフォルダ名の間はスラッシュ(/)を指定します。
バケット内のフォルダ内のファイルを表示
aws s3 ls test-s3-data-2022/folder1/test1.txt
2023-05-31 13:39:59 3 test1.txt
ファイル名の指定もできます。
S3のファイルをコピーする(aws s3 cp)
aws s3 cp コピー元 コピー先 |
コピーはaws s3 cpコマンドを実行します。
EC2からS3へ1つのファイルをコピー
aws s3 cp test1.txt s3://test-s3-data-2022
upload: ./test1.txt to s3://test-s3-data-2022/test1.txt
EC2からS3のバケット内にファイルをコピーしています。
成功すると2行目のようにupload・・・と表示されます。
EC2からS3へ1つのファイルをコピー(フォルダ名を指定)
aws s3 cp test2.txt s3://test-s3-data-2022/folder1/
upload: ./test2.txt to s3://test-s3-data-2022/folder1/test2.txt
コピー先としてバケット名とフォルダ名の指定もできます。
EC2からS3へ複数のファイルをコピー
touch test1.txt
touch test2.txt
ls -1 test*.txt|xargs -I FILE1 aws s3 cp FILE1 s3://test-s3-data-2022/test1/
upload: ./test1.txt to s3://test-s3-data-2022/test1/test1.txt
upload: ./test2.txt to s3://test-s3-data-2022/test1/test2.txt
xargsは左側の結果を受け取って右側の処理を実行します。
ls -1 は1行に1つのファイル名を表示します。
「xargs -I 置換文字列」です。
左側の結果を受け取り、「FILE1」がその文字列になり、右にある「FILE1」にも反映されます。
S3からEC2にコピー
コピー元とコピー先を変えるとS3からEC2にコピーできます。
aws s3 cp s3://test-s3-data-2022/test1.txt .
download: s3://test-s3-data-2022/test1.txt to ./test1.txt
1行目の最後のドット(.)は現ディレクトリを指します。
成功すると2行目のようにdownload・・・と表示されます。
S3からS3へコピーする
aws s3 cp s3://test-s3-data-2022/win1.txt s3://test-data-s3-bk
copy: s3://test-s3-data-2022/win1.txt to s3://test-data-s3-bk/win1.txt
コピー先のS3のバケットポリシーにPrincipal、s3:PutObject、 "Resource": "arn:aws:s3:::test-data-s3-bk/*"の設定が必要です。
S3のファイルを移動する(aws s3 mv)
aws s3 mv 移動元 移動先 |
移動はaws s3 mvコマンドを実行します。
EC2からS3へ1つのファイルを移動
aws s3 mv test2.txt s3://test-s3-data-2022
move: ./test2.txt to s3://test-s3-data-2022/test2.txt
EC2からS3のバケット内にファイルを移動しています。
成功すると2行目のようにmove・・・と表示されます。
EC2からS3へ1つのファイルを移動(フォルダ名を指定)
aws s3 mv test3.txt s3://test-s3-data-2022/folder1/
move: ./test3.txt to s3://test-s3-data-2022/folder1/test3.txt
EC2からS3のバケット内にファイルを移動しています。
EC2からS3へ複数のファイルを移動
touch test1.txt
touch test2.txt
ls -1 test*.txt|xargs -I FILE1 aws s3 mv FILE1 s3://test-s3-data-2022/test1/
move: ./test1.txt to s3://test-s3-data-2022/test1/test1.txt
move: ./test2.txt to s3://test-s3-data-2022/test1/test2.txt
xargsは左側の結果を受け取って右側の処理を実行します。
ls -1 は1行に1つのファイル名を表示します。
「xargs -I 置換文字列」です。
左側の結果を受け取り、「FILE1」がその文字列になり、右にある「FILE1」にも反映されます。
S3からEC2に移動
移動元と移動先を変えるとS3からEC2に移動できます。
aws s3 mv s3://test-s3-data-2022/test2.txt .
move: s3://test-s3-data-2022/test2.txt to ./test2.txt
1行目の最後のドット(.)は現ディレクトリを指します。
関連の記事