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_ENDPOINT | S3-совместимый URL эндпоинта |
S3_DEFAULT_BUCKET | Имя автоматически созданного бакета (default) |
S3_ACCESS_KEY_ID | Access key |
S3_SECRET_ACCESS_KEY | Secret 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!,
},
});Публичные файлы
По умолчанию бакеты приватные. Объекты в бакете, который вы сделали публичным, доступны без аутентификации двумя способами:
- Gateway URL (показывается в дашборде):
Вместо
https://s3-<region>.onlizard.com/<addonId>/<bucket>/<key><region>подставьте значениеS3_REGION(eu-west-1илиus-east-1). - 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 этот лимит не меняет.
См. также
- Managed Addons — именование, ссылки и браузеры в дашборде.
- Межсервисные ссылки — синтаксис ссылок и их разрешение.
Обновлено