はじめに
Google Cloud Storage(以下GCS)で、エンドユーザーにコンテンツを配信することはよくあると思います。
本稿では、GCSにアップロードした画像をエンドユーザーに配信する方法を記載します。
期限付きで公開する
有効期限が最大7日間の署名付きの画像URLを発行することができる
node.jsで発行する
import { Storage } from "@google-cloud/storage";
const storage = new Storage();
const file = storage.bucket(`バケット名`).file(`画像ファイル名`);
const url = await file.getSignedUrl({
action: 'read',
expires: Date.now() + 20 * 60 * 1000
});
バケットを公開する
無期限で画像を公開したい場合はバケット自体をパブリックにする
デフォルトの設定ではPublic accessがPer objectとなっている
バケットのPermissionsより次を設定する
New members: allUsers
Role: Storage Object Viewer
Public accessがPublicになりバケットが一般公開された状態になる
画像は次のURLでアクセスすることができる
https://storage.googleapis.com/{バケット名}/{画像ファイル名}
例えばmako.pngであれば
https://storage.googleapis.com/mako0715_images/mako.png
でアクセスすることができる
参考