LoginSignup
17
17

More than 5 years have passed since last update.

とつぜんS3にファイルを置きたくなったときに覚えておくこと

Last updated at Posted at 2014-08-05

「こと」っていうか覚えておくべきコマンド。

install

もろもろの操作に使うawsコマンドをインストールする。

$ curl -O https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
$ unzip awscli-bundle.zip
$ sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

configure

awsのサブコマンドconfigureを使うと、id・secret・region等の設定が書き込める。

$ aws configure
AWS Access Key ID [********************]: XXXXXXXXXXXXXXXXXX
AWS Secret Access Key [********************]: XXXXXXXXXXXXXXXXXX
Default region name [None]: hogehogehoge
Default output format [None]: 

または、今後設定ファイルを指定しながら叩くようにする。
実際、ひとりでいくつかのid・secretを取り回すケースはよくあるので、この叩き方のほうがよくあるみたい。

例えば以下。

$ AWS_CONFIG_FILE=aws.conf aws s3 ls

設定ファイルの中身はこんなかんじ。

[default]
aws_access_key_id=XXXXXXXXXXXXXXXXXX
aws_secret_access_key=XXXXXXXXXXXXXXXXXX
region=hogehogehoge

バケット・ファイルの一覧

S3でファイルを置く場所は、 バケットという単位で扱われている。
いまアクセスできるバケットを一覧するには以下。

$ aws s3 ls
2013-02-10 19:10:28 example.com
2013-01-02 20:38:30 test1.example.com
2013-02-10 12:10:40 assets.fnobi.com

このうちの、あるバケットの中身を参照するには以下。

$ aws s3 ls s3://example.com

ファイルの操作

ファイルをアップロードすると言うと、putとかイメージしてしまうのだけれど、awsで使うのはcp

$ aws s3 cp hoge.jpg s3://example.com/images/
upload: ./hoge.jpg to s3://example.com/images/hoge.jpg

これでs3://example.com/hoge.txtができる。

ただし、このまんまで上げてしまうと、自分からしか読み込めないファイルになってしまう。(厳密に言うともうすこしややこしいけど)
のでので、これをそのままWeb公開したりする場合は、権限をきちんと設定してあげる必要がある。

具体的には、長いけど以下。
(http://acs.amazonaws.com/groups/global/AllUsersは、「すべてのユーザー」ってのを示すnamespaceみたいなものらしい)

$ aws s3 cp hoge.jpg s3://example.com/images/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers

参考

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17