Importer et télécharger des objets de stockage dans des projets

Cette page explique comment importer et télécharger des objets vers et depuis des buckets de stockage isolés de Google Distributed Cloud (GDC).

Avant de commencer

Les buckets de stockage sont des ressources limitées à un projet spécifique. Le projet agit comme un conteneur, regroupant vos buckets et permettant leur gestion via le serveur de l'API Management. Avant de pouvoir effectuer les opérations décrites sur cette page, vous devez créer un projet ou en sélectionner un existant pour lequel vous disposez des autorisations suffisantes.

Rôles IAM requis

Contactez votre administrateur de projet IAM pour demander les rôles suivants dans l'espace de noms de votre projet :

  • Administrateur de bucket de projet (project-bucket-admin) : créez, mettez à jour et supprimez des buckets de stockage.
  • Lecteur d'objets de bucket de projet (project-bucket-object-viewer) : affichez et vérifiez les détails des buckets et des objets de stockage.

Pour en savoir plus, consultez Accorder l'accès à un bucket.

Préparer votre environnement

Pour exécuter des commandes sur le serveur de l'API de gestion ou le serveur de l'API globale, procédez comme suit :

  1. Connectez-vous et générez le fichier kubeconfig pour le serveur de l'API de gestion zonale si vous n'en avez pas.
  2. Pour les buckets à double zone, procédez comme suit :
    • Vérifiez auprès de votre opérateur d'infrastructure (IO) que la ressource personnalisée BucketLocationConfig a été créée pour vos zones appariées.
    • Générez le fichier kubeconfig pour le serveur de l'API globale.

Consignes de dénomination des objets

Suivez les consignes ci-dessous pour nommer des objets :

  • Utilisez des caractères UTF-8 lorsque vous nommez des objets.
  • Le nom doit comporter entre 1 et 55 caractères.
  • N'incluez pas d'informations permettant d'identifier l'utilisateur.

Importer des objets dans des buckets de stockage

Console

  1. Dans le menu de navigation, cliquez sur Object Storage (Stockage d'objets).
  2. Cliquez sur le nom du bucket dans lequel vous souhaitez importer l'objet.
  3. Facultatif : Si vous souhaitez créer un dossier pour stocker votre objet, cliquez sur Create folder (Créer un dossier) > saisissez un nom de dossier > cliquez sur Create (Créer).
  4. Cliquez directement sur Upload file (Importer un fichier), ou accédez au dossier que vous venez de créer, puis cliquez sur Upload file (Importer un fichier).
  5. Sélectionnez le fichier souhaité, puis cliquez sur Open (Ouvrir).
  6. Attendez le message de confirmation indiquant que l'importation a réussi.

gdcloud

Pour importer un objet, exécutez les commandes suivantes :

gdcloud storage cp LOCAL_PATH s3://REMOTE_PATH
gdcloud storage cp s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME
gdcloud storage mv s3://FULLY_QUALIFIED_SOURCE_BUCKET_NAME s3://FULLY_QUALIFIED_DESTINATION_BUCKET_NAME

Les commandes suivantes nécessitent le FULLY_QUALIFIED_BUCKET_NAME. Utilisez la commande GET ou DESCRIBE de la section Afficher la configuration du bucket pour obtenir le nom de bucket complet.

La commande suivante importe tous les fichiers texte du répertoire local dans un bucket :

gdcloud storage cp *.txt s3://FULLY_QUALIFIED_BUCKET_NAME

La commande suivante importe plusieurs fichiers du répertoire local dans un bucket :

gdcloud storage cp abc1.txt abc2.txt s3://FULLY_QUALIFIED_BUCKET_NAME

Pour importer un dossier dans un bucket, utilisez l'option --recursive pour copier une arborescence de répertoires complète. La commande suivante importe l'arborescence de répertoires dir :

gdcloud storage cp DIRECTORY_NAME s3://FULLY_QUALIFIED_BUCKET_NAME --recursive

Effectuez des importations en plusieurs parties pour les objets volumineux ou utilisez-les automatiquement lorsque vous devez importer un fichier de plus de 15 Mo. Dans ce cas, le fichier est divisé en plusieurs parties, chacune d'une taille de 15 Mo. La dernière partie est plus petite. Chaque partie est importée séparément et reconstruite à la destination une fois le transfert terminé.

Si l'importation d'une partie échoue, vous pouvez la redémarrer sans affecter les autres parties déjà importées.

Deux options sont liées aux importations en plusieurs parties :

  • --disable-multipart : désactive les importations en plusieurs parties pour tous les fichiers.
  • --multipart-chunk-size-mb=SIZE : définit la taille de chaque partie d'une importation en plusieurs parties.

Les fichiers dont la taille est supérieure à SIZE sont automatiquement importés en plusieurs parties multithread. Les fichiers plus petits sont importés à l'aide de la méthode traditionnelle. SIZE est exprimé en mégaoctets. La taille de partie par défaut est de 15 Mo. La taille de partie minimale autorisée est de 5 Mo et la taille maximale est de 5 Go.

Télécharger des objets à partir de buckets de stockage

Console

  1. Dans le menu de navigation, cliquez sur Object Storage (Stockage d'objets).
  2. Cliquez sur le nom du bucket contenant les objets.
  3. Cochez la case à côté du nom de l'objet à télécharger.
  4. Cliquez sur Download (Télécharger).

gdcloud

Pour obtenir des objets à partir du bucket :

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/OBJECT LOCAL_FILE_TO_SAVE

Pour télécharger tous les fichiers texte d'un bucket dans votre répertoire actuel :

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/*.txt .

Pour télécharger le fichier texte abc.txt d'un bucket dans votre répertoire actuel :

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt .

Pour télécharger une ancienne version du fichier, répertoriez d'abord toutes les versions du fichier :

gdcloud storage ls s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt --all-versions

Exemple de résultat :

s3://my-bucket/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND
s3://my-bucket/abc.txt#ODgzNEYzQ0MtMzEzRS0xMUVFLTk2NEItMjI1MTAwQkJENjND
s3://my-bucket/abc.txt#ODNCNDEzNzgtMzEzRS0xMUVFLTlDOUMtQzRDOTAwQjg3RTg3

Ensuite, téléchargez une version spécifique du fichier texte abc.txt du bucket dans votre répertoire actuel :

gdcloud storage cp s3://FULLY_QUALIFIED_BUCKET_NAME/abc.txt#OEQxNTk4MUEtMzEzRS0xMUVFLTk2N0UtQkM4MjAwQkJENjND .

Utiliser une AEADKey personnalisée

Pour une personnalisation plus poussée, vous pouvez créer votre propre AEADKey et l'utiliser directement lors du chiffrement des objets dans votre bucket. Vous disposez ainsi d'un contrôle total sur la clé de chiffrement, en contournant la clé par défaut. Suivez Créer une clé pour créer une AEADKey et assurez-vous qu'elle se trouve dans le même Namespace que le bucket que vous comptez utiliser. Ensuite, chaque fois que vous envoyez la requête, assurez-vous que l'élément HEADER est configuré avec x-amz-server-side-encryption: SSE-KMS et x-amz-server-side-encryption-aws-kms-key-id: NAMESPACE_NAME/AEADKey_NAME.