Skip to main content
Blob Storage spricht die S3-API unter https://s3-blob.squarecloud.app. Jedes Tool, bei dem du einen eigenen Endpoint festlegen kannst, funktioniert: aws-cli, boto3, das AWS SDK für JavaScript, rclone, Cyberduck und die meisten Backup-Tools.

Zugangsdaten

S3-Tools signieren Requests mit einem Zugangsschlüsselpaar. Hol es dir über S3 Credentials:
Das Paar wird aus deinem API-Schlüssel abgeleitet. Es braucht keine separate Verwaltung: Das Widerrufen oder Neugenerieren des Schlüssels wirkt sich genauso auf das Paar aus, und das Paar erhält dieselben Scopes. Ein Schlüssel mit nur blob:read ergibt ein reines Lese-Paar. Das Paar ändert sich nicht, solange sich der API-Schlüssel nicht ändert. Hol es also einmal ab und bewahre es in deinem Secret Manager oder in einer Umgebungsvariable auf. Ruf die Route nicht bei jedem Start auf: Sie akzeptiert 10 Requests pro Stunde.

Buckets

Dein Konto sieht drei feste Buckets. Du kannst keine Buckets erstellen oder löschen. Ein Key im Bucket public oder private ist der Objektpfad ohne deine Nutzer-ID: images/logo.png im Bucket public ist in der REST-API das Objekt pub/<user_id>/images/logo.png. Dateien, die über S3 geschrieben werden, erscheinen in der REST-API und im Dashboard, und umgekehrt.

Konfiguration

boto3 braucht signature_version="s3v4" für Presigned URLs: Ohne diese Einstellung signiert generate_presigned_url mit dem älteren SigV2, das das Gateway nicht akzeptiert. Presigned URLs gelten bis zu 7 Tage (604800 Sekunden).
Antworten des Gateways werden nie an der Edge gecacht. Eine Presigned URL funktioniert genau dann nicht mehr, wenn sie abläuft, wenn der API-Schlüssel widerrufen wird oder wenn das Objekt gelöscht wird.

Unterstützte Operationen

Bucket Policies, CORS, Lifecycle, Website, Verschlüsselung, Object Lock, Versionen, Logging, Benachrichtigungen, Replikation, ACL- und Tag-Schreibzugriffe, GET per partNumber sowie Browser-POST-Formular-Uploads antworten mit 501 NotImplemented. Verwende die Kontoeinstellungen für Lifecycle-Regeln.

Keys

  • Keys sind wörtliche Pfade. Ein Key kann bis zu etwa 1000 Bytes lang sein: Das Limit von 1024 Bytes zählt auch das Kontopräfix mit. Ein längerer Key antwortet mit KeyTooLongError, und die Meldung nennt die genaue Anzahl an Bytes, die dir zur Verfügung stehen. Segmente dürfen nicht leer, . oder .. sein.
  • Ein 0-Byte-Key, der auf / endet, ist ein Ordner-Marker, so wie die AWS-Konsole Ordner erstellt.
  • Der ausgelieferte Content-Type wird wie in der REST-API aus der Endung bestimmt. Ausführbare Dateien werden mit InvalidArgument abgelehnt, und .html, .svg und .xml werden als Downloads ausgeliefert.

Metadaten, Cache und Ablauf

  • x-amz-meta-*-Header bleiben bei Pro und Enterprise erhalten (bis zu 5 Schlüssel und 512 Bytes, sonst MetadataTooLarge). Bei anderen Plänen werden sie verworfen.
  • Cache-Control und Content-Disposition bleiben erhalten. Ein Cache-Control ohne Caching (no-cache, no-store oder max-age=0) wird außerhalb von Enterprise mit AccessDenied abgelehnt.
  • Regeln pro Präfix gelten für Objekte, die über S3 geschrieben werden, einschließlich der automatischen Löschung. max_size und extensions einer Regel gelten nur für REST-Uploads.

Limits

Über einem Limit antwortet das Gateway mit SlowDown (HTTP 503), und die AWS SDKs warten und wiederholen von selbst. S3-Requests zählen nicht zum API-Request-Limit deines Plans. Prüfe das Schlüsselpaar, bevor du in einer Schleife wiederholst: Eine IP, die zu viele ungültige Zugangsdaten sendet, wird für einige Minuten gesperrt.

Teilgröße

Multipart-Tools teilen große Dateien selbst auf; halte jeden Teil bei 80 MB oder weniger. Die Standardwerte der AWS CLI (8 MB) und von rclone (5 MB) passen bereits.
Schreiben erfordert einen kostenpflichtigen Plan. Ohne einen solchen, und im reinen Lese-Bucket legacy, antworten Schreibzugriffe mit AccessDenied. Das Speicherkontingent gilt wie in der REST-API.

Fehler

Das Gateway antwortet mit Standard-S3-XML-Fehlern, sodass SDKs sie nativ verarbeiten: