DockerコンテナでAWS CLI V2
をインストール
前提としてコンテナが立ち上がっていて、curl
、unzip
がインストールされた状態です。
コンテナに入ります。
1.下記のコマンド実施
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
2.解凍実施
unzip awscliv2.zip
3.インストール
./aws/install
4.確認
aws --version
こちらのように表示されればインストール完了です。
aws-cli/2.4.6 Python/3.8.8 Linux/5.10.25-linuxkit exe/x86_64.debian.10 prompt/off
- Dockerfileはこちら
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \
&& unzip awscliv2.zip \
&& ./aws/install
5.必要ないのでzipを削除
rm ./awscliv2.zip
6.アクセスキーとシークレットアクセスキー
AWS Access Key ID
AWS Secret Access Key
AWS コンソールから取得しておきます。
7.設定と確認
最初にaws configure
に設定をいれる。
下記のようにAccess Keyと、Secret Access Keyと、region nameを順に入力を求められるので、
答えていけば設定が完了します。
AWS Access Key ID [None]: 【Access Key】
AWS Secret Access Key [None]: 【Secret Access Key】
Default region name [None]: 【region】
東京regionの場合はap-northeast-1
Default output format [None]:
ls
しても何もファイルは出来ていませんが
ls -al
total 76
drwxr-xr-x 6 root root 192 Dec 9 23:03 .
drwxr-xr-x 31 root root 992 Dec 12 09:41 ..
-rw-r--r-- 1 root root 1465 Dec 9 22:54 README.md
-rw-r--r-- 1 root root 68279 Dec 9 22:54 THIRD_PARTY_LICENSES
drwxr-xr-x 71 root root 2272 Dec 9 23:03 dist
-rwxr-xr-x 1 root root 4047 Dec 9 22:54 install
もう一度aws configure
すると、見えないけど設定は入っていて、1行ずつマスクされて表示されるので
Enterで次が表示されます。
8.LaravelでAmazon S3を操作する場合
いろいろな記事を見ると.envに設定(AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY)を書くように書いてあるけど、上記ですでに設定しているので必要ないようです。
但し.envに下記の2点は書く必要があります。
AWS_DEFAULT_REGION=【region】
AWS_BUCKET=【バケット名】
/* s3を指定する */
$disk = Storage::disk('s3');
/* s3ディレクトリを指定する */
$dir = '/';
/* 転送する方法は諸説あります */
$disk->putFileAs($dir, 転送元のディレクトリとファイル名, ファイル名);
以上