AWS CLIのコマンド (S3のファイルを参照/送信/取得)のサンプルです。
目次
サンプル | EC2からS3のファイルの一覧を表示する(aws s3 ls) |
EC2とS3でファイルをコピーする(aws s3 cp) | |
EC2とS3でファイルを移動する(aws s3 mv) | |
S3からS3へコピーする(aws s3 cp) |
EC2からS3のファイルの一覧を表示する(aws s3 ls)
aws s3 ls |
コマンドの実行にはAWS CLIのインストールが必要です。
aws s3 lsはバケットの一覧を表示します。
[ec2-user@ip-10-0-10-4 ~]$ 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
[ec2-user@ip-10-0-10-4 ~]$
バケット内部の一覧を表示
aws s3 lsの後ろにバケット名を指定するとバケット内部の一覧が表示されます。
[ec2-user@ip-10-0-10-4 ~]$ 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
[ec2-user@ip-10-0-10-4 ~]$
バケット名+フォルダ名を指定
バケット名とフォルダ名の配下が一覧で表示されます。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 ls test-s3-data-2022/folder1/
2023-05-31 13:39:59 3 test1.txt
[ec2-user@ip-10-0-10-4 ~]$
バケット名+フォルダ名+ファイル名を指定
ファイル名の指定もできます。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 ls test-s3-data-2022/folder1/test1.txt
2023-05-31 13:39:59 3 test1.txt
[ec2-user@ip-10-0-10-4 ~]$
EC2からS3のファイルの一覧を表示する(aws s3 ls)
aws s3 cp コピー元 コピー先 |
コピーはaws s3 cpコマンドを実行します。
EC2からS3へコピー
[ec2-user@ip-10-0-10-4 ~]$ aws s3 cp test1.txt s3://test-s3-data-2022
upload: ./test1.txt to s3://test-s3-data-2022/test1.txt
[ec2-user@ip-10-0-10-4 ~]$
EC2からS3のバケット内にファイルをコピーしています。
成功すると2行目のようにupload・・・と表示されます。
EC2からS3へコピー(バケット名+フォルダ名を指定)
[ec2-user@ip-10-0-10-4 ~]$ aws s3 cp test2.txt s3://test-s3-data-2022/folder1/
upload: ./test2.txt to s3://test-s3-data-2022/folder1/test2.txt
[ec2-user@ip-10-0-10-4 ~]$
コピー先としてバケット名とフォルダ名の指定もできます。
S3からEC2にコピー
コピー元とコピー先を変えるとS3からEC2にコピーできます。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 cp s3://test-s3-data-2022/test1.txt .
download: s3://test-s3-data-2022/test1.txt to ./test1.txt
[ec2-user@ip-10-0-10-4 ~]$
1行目の最後のドット(.)は現ディレクトリを指します。
成功すると2行目のようにdownload・・・と表示されます。
複数のファイルをコピー(アスタリスク) EC2からS3
[ec2-user@ip-10-0-10-4 ~]$ touch test1.txt
[ec2-user@ip-10-0-10-4 ~]$ touch test2.txt
[ec2-user@ip-10-0-10-4 ~]$ 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
[ec2-user@ip-10-0-10-4 ~]$
xargsは左側の結果を受け取って右側の処理を実行します。
ls -1 は1行に1つのファイル名を表示します。
「xargs -I 置換文字列」です。
左側の結果を受け取り、「FILE1」がその文字列になり、右にある「FILE1」にも反映されます。
EC2とS3でファイルを移動する(aws s3 mv)
aws s3 mv 移動元 移動先 |
移動はaws s3 mvコマンドを実行します。
EC2からS3へ移動
[ec2-user@ip-10-0-10-4 ~]$ aws s3 mv test2.txt s3://test-s3-data-2022
move: ./test2.txt to s3://test-s3-data-2022/test2.txt
[ec2-user@ip-10-0-10-4 ~]$
EC2からS3のバケット内にファイルを移動しています。
成功すると2行目のようにmove・・・と表示されます。
EC2からS3へ移動(バケット名+フォルダ名を指定)
[ec2-user@ip-10-0-10-4 ~]$ aws s3 mv test3.txt s3://test-s3-data-2022/folder1/
move: ./test3.txt to s3://test-s3-data-2022/folder1/test3.txt
[ec2-user@ip-10-0-10-4 ~]$
EC2からS3のバケット内にファイルを移動しています。
成功すると2行目のようにmove・・・と表示されます。
S3からEC2に移動
移動元と移動先を変えるとS3からEC2に移動できます。
[ec2-user@ip-10-0-10-4 ~]$ aws s3 mv s3://test-s3-data-2022/test2.txt .
move: s3://test-s3-data-2022/test2.txt to ./test2.txt
[ec2-user@ip-10-0-10-4 ~]$
1行目の最後のドット(.)は現ディレクトリを指します。
複数のファイルを移動(アスタリスク) EC2からS3
[ec2-user@ip-10-0-10-4 ~]$ touch test1.txt
[ec2-user@ip-10-0-10-4 ~]$ touch test2.txt
[ec2-user@ip-10-0-10-4 ~]$ 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
[ec2-user@ip-10-0-10-4 ~]$
xargsは左側の結果を受け取って右側の処理を実行します。
ls -1 は1行に1つのファイル名を表示します。
「xargs -I 置換文字列」です。
左側の結果を受け取り、「FILE1」がその文字列になり、右にある「FILE1」にも反映されます。
S3からS3へコピーする(aws s3 cp)
[ec2-user@ip-10-0-10-4 ~]$ 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
[ec2-user@ip-10-0-10-4 ~]$
コピー先のS3のバケットポリシーにPrincipal、s3:PutObject、 "Resource": "arn:aws:s3:::test-data-s3-bk/*"の設定が必要です。
関連の記事