https://s3-blob.squarecloud.app. Tout outil qui permet de définir un endpoint personnalisé fonctionne : aws-cli, boto3, le SDK AWS pour JavaScript, rclone, Cyberduck et la plupart des outils de sauvegarde.
Identifiants
Les outils S3 signent les requêtes avec une paire de clés d’accès. Obtenez-la via Identifiants S3 :blob:read donne une paire en lecture seule.
La paire ne change pas tant que la clé API ne change pas : récupérez-la donc une fois et conservez-la dans votre gestionnaire de secrets ou dans une variable d’environnement. N’appelez pas la route à chaque démarrage : elle accepte 10 requêtes par heure.
Buckets
Votre compte voit deux buckets fixes. Vous ne pouvez pas créer ni supprimer de buckets.
Une clé dans le bucket
public ou private est le chemin de l’objet sans votre id utilisateur : images/logo.png dans le bucket public correspond à l’objet pub/<user_id>/images/logo.png sur l’API REST. Les fichiers écrits via S3 apparaissent sur l’API REST et dans le tableau de bord, et inversement.
Configuration
boto3 a besoin de
signature_version="s3v4" pour les URL présignées : sans cela, generate_presigned_url signe avec l’ancien SigV2, que la passerelle n’accepte pas. Les URL présignées durent jusqu’à 7 jours (604800 secondes).Opérations prises en charge
Les politiques de bucket, CORS, lifecycle, website, le chiffrement, object lock, les versions, la journalisation, les notifications, la réplication, les écritures d’ACL et de tags, le
GET par partNumber et les envois par formulaire POST depuis le navigateur répondent 501 NotImplemented. Utilisez les paramètres du compte pour les règles de cycle de vie.
Clés
- Les clés sont des chemins littéraux. Une clé peut faire jusqu’à environ 1000 octets : la limite de 1024 octets compte aussi le préfixe du compte. Une clé plus longue répond
KeyTooLongError, et son message indique le nombre exact d’octets dont vous disposez. Les segments ne peuvent pas être vides,.ou.., et les préfixes et marqueurs de listage suivent la même règle. - Un
+brut dans une query string est refusé avecInvalidArgument: encodez-le en%2Bet les espaces en%20. Tous les SDK AWS, rclone et l’AWS CLI le font déjà. - Une clé de 0 octet se terminant par
/est un marqueur de dossier, à la manière dont la console AWS crée les dossiers. - Le
Content-Typeservi est dérivé de l’extension, comme sur l’API REST. Les exécutables sont refusés avecInvalidArgumentet.html,.svget.xmlsont servis en tant que téléchargements.
Métadonnées, cache et expiration
- Les en-têtes
x-amz-meta-*sont conservés sur Pro et Enterprise (jusqu’à 5 clés et 512 octets, sinonMetadataTooLarge). Sur les autres plans, ils sont ignorés. Content-Dispositionn’accepte queinlineouattachment, avec le nom de l’objet comme nom de fichier.Cache-Controlaccepteno-cacheou unmax-age(jusqu’à un an, avecimmutable) ; le reste est ignoré. UnCache-Controlsans cache (no-cache,no-storeoumax-age=0) en dehors d’Enterprise est refusé avecAccessDenied.- Les règles par préfixe s’appliquent aux objets écrits via S3, y compris la suppression automatique,
max_sizeetextensions.
Limites
Au-delà d’une limite, la passerelle répond
SlowDown (HTTP 503), et les SDK AWS patientent puis réessaient d’eux-mêmes. Les requêtes S3 ne comptent pas dans la limite de requêtes API de votre plan.
Vérifiez la paire de clés avant de réessayer en boucle : une IP qui envoie trop d’identifiants invalides est bloquée pendant une courte période.
Taille des parties
Les outils multipart découpent eux-mêmes les gros fichiers ; gardez chaque partie à 80 Mo ou moins. Les valeurs par défaut de l’AWS CLI (8 Mo) et de rclone (5 Mo) conviennent déjà.AccessDenied. Le quota de stockage s’applique comme sur l’API REST, et les parties de tous les envois multipart ouverts comptent ensemble sur ce qu’il reste (QuotaExceeded).

