AWS CLIのコマンド (S3のファイルの一覧/コピー/移動)

目次

前提

コマンドの実行には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行目の最後のドット(.)は現ディレクトリを指します。

関連の記事

AWS IAMユーザを作成するサンプル

△上に戻る