Passer au contenu principal

Stockage objet

Le stockage objet est une architecture de stockage qui gère les données en tant qu’objets accessibles par URL, plutôt qu’en tant que fichiers. Il est particulièrement efficace et scalable pour les grandes quantités de données non structurées, telles que les sauvegardes et archives, les images et contenus audio et vidéo, le big data, etc.

Ce service est compatible avec l’API Simple Storage Service (S3) d’AWS. Vous pouvez donc utiliser le service de Stockage Objet NumSpot avec n’importe quel outil compatible S3.

Buckets

Un Bucket est une ressource logique servant à héberger des objets.

Le versioning peut être activé sur un Bucket, de sorte que chaque nouveau dépôt d’objet soit conservé et reste accessible.

Les Buckets peuvent aussi servir à :

  • Héberger des sites statiques.
  • Exporter vos Images et vos Snapshots.
  • Stocker les access logs de vos Load Balancers.
avertissement

Le nom d’un Bucket doit :

  • Être unique pour toute la Région.
  • Contenir entre 3 et 63 caractères.
  • Commencer par un caractère alphanumérique.
  • Contenir uniquement des minuscules, chiffres et tirets (-).

Vous pouvez activer le partage de ressources cross-origin (CORS) sur vos Buckets. Un cas d’utilisation de CORS consiste à autoriser votre site web hébergé dans un Bucket A à charger des fichiers hébergés dans un Bucket B. Sans CORS, la politique same-origin du navigateur bloquerait ce chargement par défaut par mesure de sécurité.

Objets

Un objet correspond à un fichier déposé ou à une donnée déposée. Vous pouvez déposer des objets dans vos propres Buckets ou dans des Buckets sur lesquels vous avez des droits d’écriture.

Un objet est identifié par une clé, qui s’apparente à un nom. Pour organiser vos objets, vous pouvez ajouter un préfixe à la clé, selon le format <PREFIXE>/<RESTE_DE_LA_CLE>. Les outils d’utilisation de stockage objet regroupent généralement les mêmes préfixes sous forme d’arborescences, similairement à la représentation des dossiers dans un explorateur de fichiers.

Vous pouvez également ajouter des tags aux objets afin de mieux les identifier et de les classer.

Si vous avez droit de lecture sur un objet, vous pouvez télécharger cet objet à l’aide d’une URL.

Les objets ne sont pas limités en taille. La taille maximale pour un dépôt partitionné simple est de 5 Gio, mais vous pouvez effectuer vos dépôts en plusieurs parties. Ainsi, il est recommandé de déposer les fichiers supérieurs à 100 Mio en plusieurs parties afin de s’assurer une performance de dépôt optimale.

Vous pouvez gérer le cycle de vie de vos objets en leur appliquant des dates d’expiration, après lesquelles ils seront supprimés automatiquement.

ACL et URL pré-signée

Par défaut, seul le créateur d’un objet peut accéder à l’objet. Deux fonctionnalités permettent de rendre l’objet accessible à d’autres utilisateurs :

  • Les Access Control Lists (ACL) : Une ACL vous permet d'accorder à un autre utilisateur des droits de lecture ou d’écriture sur un Bucket ou un objet.
astuce

Vous pouvez accorder des droits en spécifiant des ID utilisateur S3. Vous pouvez obtenir ces ID S3 via les méthodes Lister vos Buckets et Lister les objets d’un Bucket.

  • Les URL pré-signées : Vous pouvez générer une URL pré-signée pour rendre un objet accessible à toute personne disposant du lien, pendant une durée définie.

Référence API

Méthode API S3Commande s3apiCommande s3Procédure
AbortMultipartUploadabort-multipart-upload/Annuler un multipart upload
CompleteMultipartUploadcomplete-multipart-upload/Finaliser un multipart upload
CopyObjectcopy-objectcp ou mvCopier un objet dans un bucket
CreateBucketcreate-bucketmbCréer un bucket
CreateMultipartUploadcreate-multipart-upload/Créer un multipart upload
DeleteBucketdelete-bucketrbSupprimer un bucket
DeleteObjectdelete-objectrmSupprimer un objet d’un bucket
GetObjectget-objectcpTélécharger un objet
ListBucketslist-bucketslsLister les buckets
ListMultipartUploadslist-multipart-uploads/Lister les uploads multipart
ListObjectslist-objectslsLister les objets d’un bucket
ListPartslist-parts/Lister les parties d’un upload multipart
PutObjectput-objectcpDéposer un objet
UploadPartupload-part/Déposer une partie

Compatibilité AWS CLI

NumSpot Object Storage est compatible avec la majorité des fonctionnalités de l’AWS CLI. Cependant, une mise à jour d’AWS en janvier 2025 a introduit un nouveau mécanisme de vérification des intégrités (checksums) pour les transferts S3, non pris en charge par NumSpot.

Versions recommandées

Pour éviter toute erreur (400 Bad Request: trailing checksum is not supported), utilisez l’une des versions suivantes :

  • v1.36.40 (dernière stable pour AWS CLI v1)

  • v2.22.35 (dernière stable avant activation des checksums)

  • v2.23.5 ou supérieure (intègre une gestion conditionnelle des checksums compatible avec NumSpot)

Versions à éviter

  • v1.37.0

  • v2.23.0 à v2.23.4

Ces versions activent les checksums sans option de contournement complète, provoquant des erreurs avec NumSpot S3.

Contournement possible

Si une version entre v2.23.0 et v2.23.4 est utilisée, ajouter ces variables d’environnement peut temporairement restaurer la compatibilité :

export AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_REQUIRED
export AWS_RESPONSE_CHECKSUM_VALIDATION=WHEN_REQUIRED