AWS S3サービスの利用
AWSで提供されているオブジェクトストレージサービスであるS3を用いて、ファイルのアップロードやダウンロードを行いました。
今回もDocker imageであるtomomano/labcのhandsonフォルダ内のファイルを利用させていただきました。
スタックのデプロイ
まず、handsonフォルダ内に用意されたファイルを利用するために、以下のようにプロジェクトのディレクトリに移動しました。
$ cd handson/serverless/s3
次にvenvを用いて、Pythonの依存ライブラリをインストールしました。
$ python3 -m venv .env $ source .env/bin/activate $ pip install -r requirement.txt
最後にデプロイを行いました。
cdk deploy
私の環境では以下のようなエラーが発生しました。
このエラーが発生した場合には以下のコマンドを用いて"cdk bootstrap"のバケットを作成する必要があります。
$ npx cdk bootstrap
このコマンドを実行するとターミナルに以下のような出力が表示されます。
デプロイに成功すると以下のような出力が表示されます。
ここに表示されている"SimpleS3.BucketName = "以降の文字列は以降のコマンド実行に使用します。
また、AWSコンソールを確認すると以下のようにバケットが追加されました。
ファイルのアップロード
まず、アップロードするファイルを以下のように作成しました。
$ echo "Hello world!" >> tmp.txt
次に,作成したファイルをバケットにアップロードしました。
アップロードにはhandsonフォルダ内のsimple_s3.pyファイルを利用させていただきました。
コマンド内には先ほど表示された文字列を入力してください。
$ python simple_s3.py <SimpleS3.BucketName> upload tmp.txt
アップロードに成功するとターミナル上に以下のように表示されます。
また、以下のようにkeyをスラッシュで区切ることにより階層構造によってファイルを管理することができます。
$ python simple_s3.py <SimpleS3.BucketName> upload tmp.txt --key a/b/tmp.txt
アップロードされたファイルは以下のようにAWSコンソール上で確認することができます。
上の画像より、最初にアップロードしたファイルと階層構造化したファイルを確認することができました。
ファイルのダウンロード
アップロードしたファイルをダウンロードするには以下のコマンドより行うことができます。
python simple_s3.py <SimpleS3.BucketName> download tmp.txt
アップロードに成功するとターミナル上に以下のように表示されます。
ダウンロードしたファイルはデプロイした時のディレクトリに保存されます。