自分で撮影した画像にurlを付与する方法を調べたのでその備忘録として書きます。
S3とは?
S3はaws(amazon web service)が提供しているサービスの1つです。ファイルサーバと言われていて、画像や書類を保存することができます。
bucket を借りる
S3ダッシュボードに移動する
検索画面で 「s3」 と検索し、s3ダッシュボードへ移動します。
S3バケットを作成する。
S3ダッシュボードに移動すると、 パケットを作成 という文字があるので、クリックしてください。
すると、下のような画面が出てきます。
- bucketの名前を決める。
好きな名前で構いません。 - urlから画像を取得するためチェックを外す。
※②の設定は危険です。普段はチェックを外さないようにしましょう。
これで最下部の 「バケットを作成」 を押すとbucketを借りることができました。
S3をパブリックにするための設定
パケットポリシーの変更
自分が作成したバケットを選択し、 「アクセス権限」->「パケットポリシー」とクリックしてください。
すると下のような画像が出てくると思います。
この画面で下記のテキストを記入してください。
※mybucketnameは自分が作成したバケット名に変えてください
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AddPerm", "Effect":"Allow", "Principal": "*", "Action":["s3:GetObject"], "Resource":["arn:aws:s3:::mybucketname/*"] } ] }
これでS3がパブリックになりました。決して重要な画像や書類はアップロードしないでください。 適当な画像をアップロードすると、urlが取得できると思います。このurlを使用することで、誰にでも画像を共有することができます。
終わりに
APIサーバでユーザーのプロフィール画像をアップロードしurlに変換する機能を作成するときに、この方法を調べました。
goを使用した画像のアップロードやダウンロードはQiitaに記述しようと思います。
ありがとうございました。