Aller au contenu principal

Buckets et objets

Les exemples utilisent l'AWS CLI configurée comme dans Connecter un client, sans --endpoint-url.

Buckets​

aws s3 mb s3://my-bucket # créer
aws s3 ls # lister vos buckets
aws s3 rb s3://my-bucket # supprimer (il doit être vide)
RègleValeur
Nom3 à 63 caractères : minuscules, chiffres, - et . ; commence et finit par une lettre ou un chiffre
PropriétaireL'utilisateur qui crée le bucket. Il dispose d'un accès complet
SuppressionRefusée avec BucketNotEmpty tant qu'il reste des objets, d'anciennes versions ou des envois multipart

Objets​

aws s3 cp photo.jpg s3://my-bucket/2026/photo.jpg # envoyer
aws s3 cp s3://my-bucket/2026/photo.jpg ./photo.jpg # télécharger
aws s3 ls s3://my-bucket/2026/ # lister un préfixe
aws s3 rm s3://my-bucket/2026/photo.jpg # supprimer

En-têtes conservés : Content-Type, Cache-Control, Content-Disposition, Content-Encoding, Content-Language, Expires et les métadonnées personnalisées x-amz-meta-* (2 Kio au total).

aws s3api put-object --bucket my-bucket --key notes.txt --body notes.txt \
--content-type "text/plain; charset=utf-8" --metadata author=alice

Les clés sont limitées à 1 024 octets et 64 niveaux séparés par /. Une clé contenant un segment ., .. ou vide (a/./b, a//b) est refusée.

Le GET accepte Range: bytes=a-b, bytes=a- et bytes=-n.

URL présignées​

Une URL présignée donne un accès temporaire à un objet, sans identifiants. Validité : de 1 seconde à 7 jours.

aws s3 presign s3://my-bucket/report.pdf --expires-in 3600

aws s3 presign ne crée que des URL GET. Créez les URL PUT avec un SDK (generate_presigned_url("put_object", ...) avec boto3).

Envoi multipart​

L'AWS CLI et les SDK passent seuls en envoi multipart pour les gros fichiers. Les parties sont numérotées de 1 à 10 000. Le serveur n'impose ni taille minimale ni taille maximale de partie.

Les envois inachevés sont supprimés après S3_UPLOAD_TTL (24 heures par défaut). Pour en abandonner un tout de suite :

aws s3api list-multipart-uploads --bucket my-bucket
aws s3api abort-multipart-upload --bucket my-bucket --key big.iso --upload-id <upload-id>

Versionnage​

Le versionnage conserve chaque version d'un objet. Seuls le propriétaire du bucket et root peuvent le modifier.

aws s3api put-bucket-versioning --bucket my-bucket --versioning-configuration Status=Enabled
aws s3api list-object-versions --bucket my-bucket --prefix report.pdf
aws s3api get-object --bucket my-bucket --key report.pdf --version-id <version-id> old.pdf
ActionRésultat
EnvoiCrée une nouvelle version ; la réponse porte x-amz-version-id
Suppression sans --version-idAjoute un marqueur de suppression ; les versions précédentes restent
Suppression avec --version-idSupprime définitivement cette version
Status=SuspendedLes nouveaux envois écrasent la version null ; les versions existantes restent

Bon à savoir​

  • La suppression multiple (aws s3api delete-objects) n'est pas prise en charge. Les outils qui suppriment par lots échouent ; supprimez les objets un par un.
  • Dans un bucket versionné, un objet finalisé par un envoi multipart ne crée pas de version.
  • Chaque écriture dans un bucket versionné compte double dans le quota.