Managed Object Storage
Managed Object Storage auf Lizard (lizard.build) ist S3-kompatibler Speicher für Uploads, Assets und Backups. lizard add s3 erstellt ihn mit einem privaten Bucket namens default und fünf Variablen, von S3_ENDPOINT bis S3_REGION, die jedes AWS SDK mit Path-Style-Adressierung verwenden kann. Jedes Managed Object Storage-Add-on kann bis zu 16 GiB speichern, und Sie zahlen für die gespeicherten Bytes. Um Dateien ohne Authentifizierung bereitzustellen, machen Sie den Bucket im S3-Browser des Dashboards öffentlich. Einen Überblick und die Preise finden Sie auf der Seite zu Managed Object Storage.
Bereitstellen
lizard add s3Das erste S3-Add-on heißt s3, daher funktionieren ${{s3.S3_ENDPOINT}} und ähnliche sofort.
Umgebungsvariablen
| Variable | Beschreibung |
|---|---|
S3_ENDPOINT | S3-kompatible Endpoint-URL |
S3_DEFAULT_BUCKET | Der automatisch erstellte Bucket-Name (default) |
S3_ACCESS_KEY_ID | Access Key |
S3_SECRET_ACCESS_KEY | Secret Key |
S3_REGION | Region |
Einen Service verbinden
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 apiVerwendung mit einem AWS SDK
Der Endpoint ist S3-kompatibel. Setzen Sie path-style-Adressierung:
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!,
},
});Öffentliche Dateien
Buckets sind standardmäßig privat. Objekte in einem Bucket, den Sie öffentlich machen, werden ohne Authentifizierung auf zwei Arten bereitgestellt:
- Gateway-URL (im Dashboard angezeigt):
https://s3-<region>.onlizard.com/<addonId>/<bucket>/<key><region>ist der Wert vonS3_REGION(eu-west-1oderus-east-1). - Plattform-Proxy (der Dashboard-Host, mit langlebigen unveränderlichen Cache-Headern):
<dashboard-host>/api/s3/<addonId>/public/<bucket>/<key>
Sobald Sie den Bucket default öffentlich machen, werden seine Objekte bereitgestellt unter:
<dashboard-host>/api/s3/<addonId>/public/default/<key>Der S3-Browser hat für jeden Bucket zwei Schalter. Öffentliche Ansicht (Public view) lässt jeden die Objekte lesen. Öffentliches Bearbeiten (Public edit) lässt jeden Objekte hochladen und löschen. Schalten Sie es also nur für einen Bucket ein, den jeder ändern darf.
Um ein einzelnes Objekt aus einem privaten Bucket für eine Weile zu teilen, geben Sie einen temporären Link aus. Er funktioniert ohne Zugangsdaten, bis er abläuft (standardmäßig nach einer Stunde, höchstens nach 7 Tagen):
lizard s3 url report.pdf --expires 86400Presigned URLs aus einem AWS SDK funktionieren ebenfalls.
Objekte durchsuchen
Öffnen Sie den S3-Browser im Dashboard (lizard open), um Objekte hochzuladen und zu löschen, Ordner zu erstellen und Buckets öffentlich oder privat zu machen. In der CLI lädt lizard s3 upload <file> eine Datei hoch, lizard s3 list listet Objekte auf und lizard s3 url <key> gibt einen temporären Link aus; siehe lizard s3.
Bucket-ACL-Änderungen (einen Bucket öffentlich/privat machen) sind in der CLI noch nicht verfügbar — verwalten Sie sie im Dashboard.
Speicherlimit
Jedes Managed Object Storage-Add-on kann bis zu 16 GiB an Objekten speichern, zusammen für seinen Bucket default und alle weiteren, die Sie anlegen. Ein weiteres Add-on (lizard add s3) hat eigene 16 GiB. Sie zahlen für gespeicherte Bytes, nicht für eine reservierte Größe; lizard scale --storage ändert dieses Limit nicht.
Siehe auch
- Managed Addons — Benennung, Referenzen und die Dashboard-Browser.
- Service-übergreifende Referenzen — Referenzsyntax und Auflösung.
Aktualisiert