Managed AddonsObject Storage (S3)

Managed Object Storage

Lizard (lizard.build) の Managed Object Storage は、アップロード、アセット、バックアップ向けの S3互換ストレージです。lizard add s3 を実行すると、default という名前のプライベートバケット と、S3_ENDPOINT から S3_REGION までの 5 つの変数が作成されます。これらの変数は、パス形式のアドレス指定を使う任意の AWS SDK で利用できます。各アカウントは最大 16 GiB まで保存でき、保存したバイト数に対して料金を支払います。認証なしでファイルを配信するには、ダッシュボードの S3 browser からバケットを公開状態にしてください。概要と料金については、Managed Object Storage のページ を参照してください。

プロビジョニング

lizard add s3

最初の S3 アドオンの名前は s3 なので、${{s3.S3_ENDPOINT}} などもすぐに使えます。

環境変数

変数説明
S3_ENDPOINTS3互換エンドポイント URL
S3_DEFAULT_BUCKET自動作成されるバケット名 (default)
S3_ACCESS_KEY_IDアクセスキー
S3_SECRET_ACCESS_KEYシークレットキー
S3_REGIONリージョン

サービスを接続

lizard secrets set \
  S3_ENDPOINT='${{s3.S3_ENDPOINT}}' \
  S3_DEFAULT_BUCKET='${{s3.S3_DEFAULT_BUCKET}}' \
  S3_ACCESS_KEY_ID='${{s3.S3_ACCESS_KEY_ID}}' \
  S3_SECRET_ACCESS_KEY='${{s3.S3_SECRET_ACCESS_KEY}}' \
  S3_REGION='${{s3.S3_REGION}}' \
  --service api
lizard redeploy --service api

AWS SDKを使用する

エンドポイントは S3互換です。path-style アドレッシングを設定してください:

import { S3Client } from "@aws-sdk/client-s3";
 
const s3 = new S3Client({
  endpoint: process.env.S3_ENDPOINT,
  region: process.env.S3_REGION,
  forcePathStyle: true, // required
  credentials: {
    accessKeyId: process.env.S3_ACCESS_KEY_ID!,
    secretAccessKey: process.env.S3_SECRET_ACCESS_KEY!,
  },
});

公開ファイル

バケットはデフォルトでプライベートです。公開した バケット内のオブジェクトは、認証なしで次の 2 つの方法で配信されます:

  1. Gateway URL (ダッシュボードに表示):
    https://s3-<region>.onlizard.com/<addonId>/<bucket>/<key>
    <region> は S3_REGION の値 (eu-west-1 または us-east-1) です。
  2. Platform proxy (ダッシュボードのホスト。長期間有効な immutable キャッシュヘッダー付き):
    <dashboard-host>/api/s3/<addonId>/public/<bucket>/<key>

default バケットを公開状態にすると、そのオブジェクトは次の URL で配信されます:

<dashboard-host>/api/s3/<addonId>/public/default/<key>

オブジェクトの参照

ダッシュボードで S3 browser (lizard open) を開くと、オブジェクトのアップロードと削除、フォルダーの作成、バケットの public/private の切り替えを行えます。CLI では、lizard s3 upload <file> でファイルをアップロードし、lizard s3 list でオブジェクトを一覧表示できます。lizard s3 を参照してください。

Bucket ACL の変更 (バケットを public/private にすること) はまだ CLI ではできません:ダッシュボードから管理してください。

ストレージの上限

各アカウントは、Managed Object Storage アドオン全体で最大 16 GiB のオブジェクトを保存できます。料金は予約したサイズではなく、保存したバイト数に対して発生します。lizard scale --storage ではこの上限は変わりません。

関連項目

更新日