Managed Object Storage

В Lizard (lizard.build) Managed Object Storage хранит файлы по протоколу S3. Используйте его для загрузок, статических файлов и бэкапов. lizard add s3 создаёт его вместе с приватным бакетом с именем default и пятью переменными, от S3_ENDPOINT до S3_REGION, с которыми работает любой AWS SDK при path-style адресации. Каждый аккаунт может хранить до 16 GiB. Вы платите за хранимые байты. Чтобы отдавать файлы без аутентификации, сделайте бакет публичным в S3-браузере дашборда. Обзор и цены смотрите на странице Managed Object Storage.

Создание

lizard add s3

Первый S3-аддон называется s3, поэтому ${{s3.S3_ENDPOINT}} и подобные команды работают сразу.

Переменные окружения

ПеременнаяОписание
S3_ENDPOINTS3-совместимый URL эндпоинта
S3_DEFAULT_BUCKETИмя автоматически созданного бакета (default)
S3_ACCESS_KEY_IDAccess key
S3_SECRET_ACCESS_KEYSecret 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!,
  },
});

Публичные файлы

По умолчанию бакеты приватные. Объекты в бакете, который вы сделали публичным, доступны без аутентификации двумя способами:

  1. Gateway URL (показывается в дашборде):
    https://s3-<region>.onlizard.com/<addonId>/<bucket>/<key>
    Вместо <region> подставьте значение S3_REGION (eu-west-1 или us-east-1).
  2. Platform proxy (хост дашборда, с долгими неизменяемыми заголовками кэша):
    <dashboard-host>/api/s3/<addonId>/public/<bucket>/<key>

После того как вы сделаете бакет default публичным, его объекты будут доступны по адресу:

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

Обзор объектов

Откройте S3-браузер в дашборде (lizard open), чтобы загружать и удалять объекты, создавать папки и делать бакеты публичными или приватными. Из CLI команда lizard s3 upload <file> загружает файл, а lizard s3 list выводит список объектов; см. lizard s3.

Изменение ACL бакета (переключение публичный/приватный) пока недоступно в CLI — управляйте ими через дашборд.

Лимит хранилища

Каждый аккаунт может хранить до 16 GiB объектов во всех своих аддонах Managed Object Storage. Вы платите за фактически сохранённые байты, а не за зарезервированный объём; lizard scale --storage этот лимит не меняет.

См. также

Обновлено