Aller au contenu principal

Compatibilité de l'API S3

Loch S3 n'accepte que les URL de style path : /{bucket} et /{bucket}/{key}. Toute région est acceptée dans la signature.

Opérations prises en charge​

OpérationRoute
ListBucketsGET /
CreateBucketPUT /{bucket} (un corps LocationConstraint est ignoré)
HeadBucketHEAD /{bucket}
DeleteBucketDELETE /{bucket}
ListObjectsV2GET /{bucket} avec prefix, delimiter, max-keys (jusqu'à 1000), start-after, continuation-token
PutObjectPUT /{bucket}/{key}
CopyObjectPUT /{bucket}/{key} avec x-amz-copy-source ; x-amz-metadata-directive: COPY ou REPLACE
GetObjectGET /{bucket}/{key}, Range et versionId facultatifs
HeadObjectHEAD /{bucket}/{key}, versionId facultatif
DeleteObjectDELETE /{bucket}/{key}, versionId facultatif
CreateMultipartUploadPOST /{bucket}/{key}?uploads
UploadPartPUT /{bucket}/{key}?partNumber=N&uploadId=X (N de 1 à 10 000)
CompleteMultipartUploadPOST /{bucket}/{key}?uploadId=X
AbortMultipartUploadDELETE /{bucket}/{key}?uploadId=X
ListPartsGET /{bucket}/{key}?uploadId=X
ListMultipartUploadsGET /{bucket}?uploads
Put/GetBucketVersioningPUT, GET /{bucket}?versioning
ListObjectVersionsGET /{bucket}?versions
Put/Get/DeleteBucketPolicyPUT, GET, DELETE /{bucket}?policy
Put/Get/DeleteBucketCorsPUT, GET, DELETE /{bucket}?cors
Preflight CORSOPTIONS /{bucket} ou /{bucket}/{key}
Put/GetBucketAclPUT, GET /{bucket}?acl (x-amz-acl prédéfinie ou corps XML)
Put/GetObjectAclPUT, GET /{bucket}/{key}?acl
Put/Get/DeleteBucketEncryptionPUT, GET, DELETE /{bucket}?encryption (AES256 uniquement)

Les URL présignées fonctionnent pour toutes ces opérations.

Authentification​

MéthodeDétail
SigV4 en en-têteAuthorization: AWS4-HMAC-SHA256 …. host et chaque en-tête x-amz-* doivent être signés
URL présignéeParamètres X-Amz-* dans la query string, X-Amz-Expires de 1 à 604 800 secondes
x-amz-content-sha256Un hash SHA-256 (vérifié), UNSIGNED-PAYLOAD, STREAMING-AWS4-HMAC-SHA256-PAYLOAD[-TRAILER] (signatures de chunks vérifiées) ou STREAMING-UNSIGNED-PAYLOAD-TRAILER. Les autres valeurs sont refusées

Non pris en charge​

FonctionRemarque
URL de style virtual-hostedUtilisez le style path
ListObjects v1GET /{bucket} répond toujours au format V2 ; marker est ignoré
DeleteObjects (suppression multiple)405
GetBucketLocation (?location)Non implémenté
partNumber sur GetObjectIgnoré, l'objet entier est renvoyé
En-têtes Range multiplesIgnorés, l'objet entier est renvoyé
Tags, cycle de vie, réplication, verrouillage d'objets, site web, journalisation, notificationsNon implémentés
SSE-KMS, IAM, STS, régionsNon implémentés
Content-MD5 et x-amz-checksum-*Non vérifiés
attention

Les requêtes vers une sous-ressource non prise en charge ne sont pas toujours refusées : elles peuvent être traitées comme l'opération simple sur le même chemin. Par exemple, PUT /{bucket}/{key}?tagging remplace l'objet par le corps de la requête. N'envoyez pas de requêtes de tags ou de cycle de vie à Loch S3.