⚠️ 記事内に広告を含みます。

aws cliでs3を操作する方法

aws cliでs3を操作する方法

s3はawsのオブジェクトストレージサービスでgcpのgcsやazureのblogストレージなどと競合しているサービスです。aws cliを使ってs3をコマンドライン上で操作する方法を紹介します。

aws cliで操作できるS3コマンド一覧

s3をコマンドライン上で操作するにはaws cliをセットアップする必要があります。

aws cliのインストール方法は公式ドキュメントを参考にしてください

ここではLinux, x86システムへのaws cliのインストールを紹介しますが基本的には皆同じです。

#!/bin/bash

# get files and installs 
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
# インストール先: /usr/local/aws-cli SymLink /usr/local/bin
sudo ./aws/install 

##updateの場合
sudo ./aws/install --update

# configure
aws configure
 #入力例
 #AWS Access Key ID [None]: ACESSKEYEXAMPLE2022
 #AWS Secret Access Key [None]: ThisKeyIsGenerateFromAwsConsoleIamCreateUsers
 #Default region name [None]: ap-northeast-1
 #Default output format [None]: json
  • aws s3 ls (s3://bucket-name)
    • バケット及びバケットの中身のls
  • aws s3 mb s3://create-bucket-name
    • ↑バケットの作成
  • aws s3 rb s3://remove-bucket-name
    • ↑バケットの削除
  • aws s3 rm s3://bucket-name/example/file.html
    • ↑ファイルの削除
  • aws s3 mv filename.txt s3://bucket-name
    • ↑ファイルの移動
  • aws s3 cp filename.txt s3://bucket-name
    • ↑ファイルのコピー
  • aws s3 sync filename.txt s3://bucket-name
    • ↑ファイルの同期
  •  aws s3 presign s3://bucket-name/file.hetml –expires-in 3600
    • ↑presign URL(一時的に有効なURL)の作成
  • aws s3 mv filename.txt s3://bucket-name
    • ↑ファイルの移動

aws cli でs3を操作する

# s3のバケットを作成する
aws s3 mb s3://test-bucket

# s3バケットを確認
aws s3 ls 
 2022-09-20 11:00:00 s3test-bucket

# コピー
## ドライラン (--excludeでtest*を除外 syncdirの中のファイルをコピー)
aws s3 cp --dryrun --exclude 'test*' /home/ec2-user/syncdir/ s3://s3test-bucket/ --recursive
## コピー
aws s3 cp --exclude 'test*' /home/ec2-user/syncdir/ s3://s3test-bucket/ --recursive

## 確認
# aws s3 ls s3://s3test-bucket/                            
2022-09-18 11:51:21          0 file1

## 削除
aws s3 rm s3://s3test-bucket/ --exclude 'home/*' --recursive --dryrun
aws s3 rm s3://s3test-bucket/ --exclude 'home/*' --recursive
(aws s3 rm s3://s3test-bucket/ --exclude '*' --include 'file*' --include 'test*' という指定もできる)

コピーのコマンドはrsyncみたいに使える。

同期する場合にはaws s3 sync(–delete)を使うのが良い

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です