Object Storage - Premiers pas

Objectif

Ce guide vous aide à gérer vos buckets et objets.

Découvrez comment créer et gérer un bucket Object Storage.

Info

Si vous utilisez l'ancien système de stockage d'objets Swift :

  • pour la classe de stockage Standard object storage - SWIFT API, suivez ce guide.
  • pour la classe de stockage Cloud Archive - SWIFT API, suivez ce guide.

Pour les nouveaux projets, nous vous recommandons vivement d'utiliser notre stockage d'objets compatible S31, qui bénéficie de nos dernières innovations et de nos nouvelles fonctionnalités.

Prérequis


Accès à l'espace client OVHcloud

  • Lien direct : Projets Public Cloud
  • Pour accéder à vos services : Public Cloud > Sélectionnez votre projet

En pratique

Info

Si vous souhaitez utiliser le provider Terraform OVHcloud, vous pouvez suivre ce guide.

Préparation

Pour utiliser l'AWS CLI

Pour connaître la procédure d’installation de l’AWS CLI adaptée à votre environnement, nous vous recommandons de lire la documentation officielle d’AWS.

Vérifier l'installation

aws --version
Info

Si vous avez besoin de plus d'informations sur l'installation de l'AWS CLI, consultez la documentation AWS.

Collecter les informations d'identification

  • Vous aurez besoin de l'Access key et de la Secret key de votre utilisateur. Ces informations sont accessibles depuis l'onglet Utilisateurs Object Storage dans votre espace client OVHcloud.
  • Vous aurez également besoin de votre endpoint_url. Si vous avez déjà créé votre bucket, cette information est accessible depuis l'onglet Mes conteneurs puis dans les détails du votre bucket. En cas de besoin, suivez ce guide.

Où trouver l'endpoint d'un bucket ?

Cliquez sur le nom de votre bucket et retrouvez ses détails dans l'onglet Informations générales :

détails du bucket

Configuration

Vous pouvez utiliser la configuration interactive pour générer les fichiers de configuration ou les créer manuellement.

Info

Pour utiliser la configuration interactive, exécutez la commande suivante :

aws configure

Ou cette commande :

aws configure --profile <profile_name>

Le format du fichier de configuration dans le client AWS est le suivant :

cat ~/.aws/credentials

[default]
aws_access_key_id = <access_key>
aws_secret_access_key = <secret_key>
cat ~/.aws/config

[default]
region = <region_in_lowercase>
endpoint_url = <endpoint_url>
services = ovh-rbx-archive

[profile <profile_name>]
region = rbx
output = json
services = ovh-rbx

[services ovh-rbx-archive]
s3 =
  endpoint_url = https://s3.rbx-archive.io.cloud.ovh.net/
  signature_version = s3v4

s3api =
  endpoint_url = https://s3.rbx-archive.io.cloud.ovh.net/

[services ovh-rbx]
s3 =
  endpoint_url = https://s3.rbx.io.cloud.ovh.net/
  signature_version = s3v4

s3api =
  endpoint_url = https://s3.rbx.io.cloud.ovh.net/

Voici les valeurs de configuration que vous pouvez définir spécifiquement :

VariableTypeValeurDéfinition
max_concurrent_requestsIntegerDéfaut : 10Le nombre maximum de requêtes simultanées.
max_queue_sizeIntegerDéfaut : 1000Le nombre maximal de tâches dans la file d'attente des tâches.
multipart_thresholdInteger
String
Défaut : 8MBLe seuil de taille que l'interface CLI utilise pour les transferts multipart de fichiers individuels.
multipart_chunksizeInteger
String
Défaut : 8MB
Minimum for uploads: 5MB
Lors de l'utilisation de transferts multipart, il s'agit de la taille en octets que l'interface CLI utilise pour les transferts multipart de fichiers individuels.
max_bandwidthIntegerDéfaut : NoneLa bande passante maximale qui sera consommée pour le chargement et le téléchargement de données vers et depuis vos buckets.
verify_sslBooleanDéfaut : trueActive / Désactive la vérification des certificats SSL

Pour connaître la liste des endpoints par région et par classe de stockage, vous pouvez vous référer à cette page.

Utilisation

Info

Si vous avez défini plusieurs profils, ajoutez --profile <profile_name> à la ligne de commande.

Utiliser l'espace client OVHcloud

Pour gérer un bucket Object Storage, rendez-vous dans Object Storage dans le menu de gauche.

Lister vos buckets

Via AWS CLI
Via l'espace client OVHcloud
Avec AWS s3
aws s3 ls
Avec AWS S3api
aws s3api list-buckets --query "Buckets[].Name" # Retirez --query pour afficher la sortie complète.

Créer un bucket

Via AWS CLI
Via l'espace client OVHcloud
Avec AWS s3
aws s3 mb s3://<bucket_name>
aws --profile <profile_name> s3 mb s3://<bucket_name>
Avec AWS S3api
aws s3api create-bucket --bucket <bucket_name>
aws --profile <profile_name> s3api create-bucket --bucket <bucket_name>

Télécharger vos fichiers en tant qu'objets dans votre bucket

Lors du téléversement d'objets, vous pouvez sélectionner une classe de stockage pour contrôler la disponibilité, la redondance et le coût. Pour vous aider à choisir la classe de stockage la plus adaptée à vos besoins, consultez la documentation ici.

Via AWS CLI
Via l'espace client OVHcloud

Pour télécharger un objet :

Avec AWS s3
aws s3 cp /data/<object_name> s3://<bucket_name>

Par défaut, les objets sont nommés d'après des fichiers, mais ils peuvent être renommés.

aws s3 cp /data/<object_name> s3://<bucket_name>/other-filename
Info

La commande aws s3 cp utilisera STANDARD comme classe de stockage par défaut pour télécharger des objets. Pour stocker des objets dans le niveau de stockage High Performance, utilisez plutôt la commande aws s3api put-object, car aws s3 cp ne supporte pas la classe de stockage EXPRESS_ONEZONE qui est utilisée pour mapper le niveau de stockage High Performance. Pour en savoir plus sur le mappage des classes de stockage entre les niveaux de stockage OVHcloud et les classes de stockage AWS, vous pouvez consulter notre documentation.

Avec AWS s3api
# télécharger un objet vers le niveau de stockage High Performance
aws s3api put-object --bucket <bucket_name> --key <object_name> --body /data/<object_name> --storage-class EXPRESS_ONEZONE

# télécharger explicitement un objet vers le niveau de stockage Standard
aws s3api put-object --bucket <bucket_name> --key <object_name> --body /data/<object_name> --storage-class STANDARD

Téléchargement d'un objet à partir d'un bucket

Via AWS CLI
Via l'espace client OVHcloud
Avec AWS s3

Téléchargement d'un objet à partir d'un bucket :

aws s3 cp s3://<bucket_name>/<object_name> .

Téléchargement d'un objet d'un bucket vers un autre bucket :

aws s3 cp s3://<bucket_name>/<object_name> s3://<bucket_name_2>/<object_name>

Télécharger ou uploader un bucket entier sur l'hôte/bucket :

aws s3 cp s3://<bucket_name> . --recursive
aws s3 cp s3://<bucket_name> s3://<bucket_name_2> --recursive
Avec AWS s3api

Téléchargement d'un objet à partir d'un bucket :

aws s3api get-object --bucket <bucket_name> --key <object_name> <object_name>

Téléchargement d'un objet d'un bucket vers un autre bucket :

aws s3api copy-object --bucket <bucket_name_2> --copy-source <bucket_name>/<object_name> --key <object_name>

Synchronisation des buckets

Via AWS CLI
aws s3 sync . s3://<bucket_name> # Synchronisation du répertoire local avec le bucket S3
aws s3 sync s3://<bucket_name> . # Synchronisation du bucket S3 avec le répertoire local
aws s3 sync s3://<bucket_name> s3://<bucket_name_2> # Synchroniser un bucket S3 avec un autre

Suppression d'objets et de buckets

Info

Un bucket ne peut être supprimé que s'il est vide.

Via AWS CLI
Via l'espace client OVHcloud
Avec AWS s3

Suppression d'objets et de buckets

# Supprimer un objet
aws s3 rm s3://<bucket_name>/<object_name>
# Supprimer tous les objets dans un bucket
aws s3 rm s3://<bucket_name> --recursive
# Supprimer un bucket. Pour supprimer un bucket, celui-ci doit être vide.
aws s3 rb s3://<bucket_name>
# Si le bucket n'est pas supprimé, vous pouvez utiliser la même commande avec l'option --force.
# Cette commande supprime tous les objets du bucket, puis supprime le bucket.
aws s3 rb s3://<bucket_name> --force

Suppression d'objets et de buckets avec la gestion des versions activée

Si la gestion des versions est activée, une simple opération de suppression sur vos objets ne les supprimera pas définitivement.

Pour supprimer définitivement un objet, vous devez spécifier un identifiant de version :

aws s3api delete-object --bucket <NAME> --key <KEY> --version-id <VERSION_ID>

Pour répertorier tous les objets et tous les IDs de versions, vous pouvez utiliser la commande suivante :

aws s3api list-object-versions --bucket <NAME>

Avec la commande delete-object précédente, vous devrez itérer sur toutes vos versions d'objets. Alternativement, vous pouvez utiliser la commande suivante pour vider votre bucket :

aws s3api delete-objects --bucket <NAME> --delete "$(aws s3api list-object-versions --bucket <NAME> --query='{Objects: Versions[].{Key:Key,VersionId:VersionId}}')"
Avec AWS s3api

Suppression d'objets et de buckets

# Supprimer un objet
aws s3api delete-object --bucket <bucket_name> --key <object_name>
# Supprimer tous les objets dans un bucket
aws s3api delete-objects --bucket <bucket_name> --delete "$(aws s3api list-objects-v2 --bucket <bucket_name> --query='{Objects: Contents[].{Key:Key}}')"
# Supprimer un bucket. Pour supprimer un bucket, celui-ci doit être vide.
aws s3api delete-bucket --bucket <bucket_name>

Suppression d'objets et de buckets avec la gestion des versions activée

Si la gestion des versions est activée, une simple opération de suppression sur vos objets ne les supprimera pas définitivement.

Pour supprimer définitivement un objet, vous devez spécifier un identifiant de version :

aws s3api delete-objects --bucket <bucket_name> --delete "$(aws s3api list-object-versions --bucket <bucket_name> --query='{Objects: Versions[].{Key:Key,VersionId:VersionId}}')"
Info

Si le verrouillage d'objet est activé dans votre bucket, vous ne pourrez pas supprimer définitivement vos objets. Consultez notre documentation pour en savoir plus sur le verrouillage d'objet. Si vous utilisez le verrouillage d'objet en mode GOUVERNANCE et que vous avez la permission de contourner le mode GOUVERNANCE, vous devrez ajouter l'option --bypass-governance-retention à vos commandes de suppression.

Gérer les tags

Via AWS CLI

Définir des tags sur un bucket

aws s3api put-bucket-tagging --bucket <bucket_name> --tagging 'TagSet=[{Key=myKey,Value=myKeyValue}]'
aws s3api get-bucket-tagging --bucket <bucket_name>
{
  "TagSet": [
    {
    "Value": "myKeyValue",
    "Key": "myKey"
    }
  ]
}

Suppression de tags sur un bucket

aws s3api s3api delete-bucket-tagging --bucket <bucket_name>

Définir des tags sur un objet

aws s3api put-object-tagging --bucket <bucket_name> --key <object_name> --tagging 'TagSet=[{Key=myKey,Value=myKeyValue}]'
aws s3api get-bucket-tagging --bucket <bucket_name>
{
  "TagSet": [
    {
    "Value": "myKeyValue",
    "Key": "myKey"
    }
  ]
}

Suppression de tags sur un objet

aws s3api s3api delete-object-tagging --bucket <bucket_name> --key <object_name>

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Échangez avec notre communauté d'utilisateurs.

1 : S3 est une marque déposée appartenant à Amazon Technologies, Inc. Les services de OVHcloud ne sont pas sponsorisés, approuvés, ou affiliés de quelque manière que ce soit.

Cette page vous a-t-elle aidé ?