はじめに
この記事はS3 Glacier Deep Archive に写真を格安で保存しよう!(料金編)の続きです。
アップロードする
S3にアップロードする方法は2種類あります。
- マネージメントコンソールからGUIでアップロード
- AWS CLIでアップロード
簡単にアップロードできるのはマネージメントコンソールですが、アップロード速度が遅く大容量のデータを上げると途中で固まります。
ですので、大容量のデータをアップロードする際はCLIから行う方がいいです。
AWS CLIのインストール
以下の記事を参考にインストール&IAMユーザーの作成までおこなってください。
ちなみにリンク先ではIAMユーザーにアタッチするポリシーは「IAMReadOnlyAccess」で行っていますが、これだと今回の用途には使えないので「AmazonS3FullAccess」で読み替えてください。
AWS CLIを使ってアップロード
バケットを作成
S3に保存するためには、データを保存するためのバケット(バケツみたいなイメージ)が必要となります。
マネージメントコンソールからでも作成できますが、以下のコマンドで作成することも可能です。
以下に注意しながらバケットを作成しましょう。
バケット名はグローバルに一意で (Amazon S3 全体?で一意)、DNS に準拠している必要があります。
バケット名には、小文字の英文字、数字、ハイフン、およびピリオドを使用することができます。バケット名の先頭と末尾は文字または数値とし、ハイフンまたは別のピリオドの横にピリオドを使用することはできません。
$ aws s3 mb s3://bucket-name
インストール確認
$ aws --version
aws-cli/2.4.7 Python/3.8.8 Darwin/19.6.0 exe/x86_64 prompt/off
該当ファイルまで移動
$ cd uploadphotos
S3にファイルをアップロード
$ aws s3 sync . s3://my-bucket/path --storage-class DEEP_ARCHIVE
syncコマンドでは自動的にオプションをつけなくても再帰的にコピーしてくれます。
ファイルの確認
$ aws s3 ls s3://mybacket-name
さらにその配下のディレクトリ内を見たい場合は
$ aws s3 ls s3://mybacket-name/directory-name
みたいな感じで見ることができます。