Utiliser Cloud Storage avec Ruby

Cette page explique comment effectuer des tâches de base dans Cloud Storage à l'aide de la bibliothèque cliente Google Cloud pour Ruby et indique le code Ruby sous-jacent.

Vous ne payez que pour les ressources que vous utilisez dans Cloud Storage. Ce guide de démarrage rapide utilise généralement moins de 0,01 USD de ressources Cloud Storage.

Avant de commencer

  1. Installez la version 2.3 ou une version ultérieure de Ruby, ainsi que le gem Ruby Bundler.

  2. Créez un répertoire pour votre environnement de travail dans une fenêtre de terminal, puis accédez-y :

    mkdir gcs-programmatic-quickstart
    cd gcs-programmatic-quickstart

  3. Clonez le dépôt GitHub contenant les exemples d'utilisation des bibliothèques clientes Cloud Storage pour Ruby. Il est doté d'une CLI permettant d'exécuter les exemples suivants :

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  4. Préparez votre environnement Ruby en installant la bibliothèque cliente Cloud Storage pour Ruby :

    cd ruby-docs-samples/storage
    bundle install

    bundle install installe le gem google-cloud-storage défini dans l'exemple Gemfile. Les commandes de ce tutoriel utilisent ce gem.

  5. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  6. {% dynamic if "no_credentials" in setvar.task_params %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic if not setvar.redirect_url %}{% dynamic setvar redirect_url %}https://console.cloud.google.com{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if setvar.in_henhouse_no_auth_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}NO_AUTH{% dynamic endsetvar %}{% dynamic endif %}{% dynamic elif setvar.in_henhouse_service_account_whitelist %}{% dynamic if not setvar.credential_type %}{% dynamic setvar credential_type %}SERVICE_ACCOUNT{% dynamic endsetvar %}{% dynamic endif %}{% dynamic endif %}{% dynamic if not setvar.service_account_roles and setvar.credential_type == "SERVICE_ACCOUNT" %}{% dynamic setvar service_account_roles %}{% dynamic endsetvar %}{% dynamic endif %}{% dynamic setvar console %}{% dynamic if "no_steps" not in setvar.task_params %}
  7. {% dynamic endif %}{% dynamic if setvar.api_list %}{% dynamic if setvar.in_henhouse_no_auth_whitelist or setvar.in_henhouse_service_account_whitelist %}Configurez un projet dans la console GCP.

    Configurer un projet

    Cliquez pour effectuer les opérations suivantes :

    • Créer ou sélectionner un projet
    • Activer {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %}les API requises{% dynamic elif "API" in setvar.api_names %}{% dynamic else %}l'API requise{% dynamic endif %} pour ce projet
    • {% dynamic if setvar.credential_type == 'SERVICE_ACCOUNT' %}
    • Créer un compte de service
    • Télécharger une clé privée au format JSON
    • {% dynamic endif %}

    Vous pouvez afficher et gérer ces ressources à tout moment dans la console GCP.

    {% dynamic else %}{% dynamic if "no_text" not in setvar.task_params %}Activez {% dynamic if setvar.api_names %}{% dynamic print setvar.api_names %}{% dynamic else %}{% dynamic endif %}{% dynamic if "," in setvar.api_list %}les API requises{% dynamic elif "API" in setvar.api_names %}{% dynamic else %}l'API requise{% dynamic endif %}. {% dynamic endif %}

    Activer {% dynamic if "," in setvar.api_list %}les API{% dynamic else %}l'API{% dynamic endif %}.

    {% dynamic endif %}{% dynamic endif %}{% dynamic if "no_steps" not in setvar.task_params %}
  8. {% dynamic endif %}{% dynamic endsetvar %}{% dynamic print setvar.console %}

  9. Définissez votre projet en tant que variable d'environnement local :

    Linux ou MacOS

    export GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Windows

    Avec PowerShell :

    $env:GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

    Avec l'invite de commande :

    set GOOGLE_CLOUD_PROJECT=[PROJECT-ID]

Créer un bucket

Les buckets sont les conteneurs de base dans lesquels sont stockées vos données dans Cloud Storage.

Pour créer un bucket :

  1. Exécutez la commande suivante et utilisez un nom unique pour créer un bucket.

    bundle exec ruby buckets.rb create my-awesome-bucket

    Cette commande utilise un bucket nommé my-awesome-bucket. Vous devez choisir un nom unique pour votre propre bucket.

    Si l'opération réussit, la commande affiche les éléments suivants :

    Created bucket: my-awesome-bucket

    Vous venez de créer un bucket dans lequel vous pouvez stocker vos contenus.

Importer un objet dans un bucket

Image d'un chaton

  1. Faites un clic droit sur l'image ci-dessus et enregistrez-la sur votre ordinateur, par exemple sur le bureau.

  2. Exécutez la commande suivante pour copier l'image à partir de l'emplacement où vous l'avez enregistrée dans le bucket que vous avez créé :

    bundle exec ruby files.rb upload my-awesome-bucket ~/Desktop/kitten.png kitten.png

    Si l'opération réussit, la commande affiche les éléments suivants :

    Uploaded kitten.png

    Vous venez de stocker un objet dans votre bucket.

Télécharger un objet se trouvant dans votre bucket

  1. Exécutez la commande suivante pour télécharger l'image que vous avez stockée dans votre bucket sur votre ordinateur, par exemple sur le bureau :

    bundle exec ruby files.rb download my-awesome-bucket kitten.png ~/Desktop/kitten2.png

    Si l'opération réussit, la commande affiche les éléments suivants :

    Downloaded kitten.png

    Vous venez de télécharger un objet qui se trouve dans votre bucket.

Copier un objet dans le bucket

  1. Exécutez la commande suivante pour créer une copie de votre image dans le bucket :

    bundle exec ruby files.rb copy my-awesome-bucket kitten.png my-awesome-bucket kitten3.png

    Si l'opération réussit, la commande affiche les éléments suivants :

    kitten.png in my-awesome-bucket copied to kitten3.png in my-awesome-bucket

    Vous venez de copier votre objet dans le bucket.

Répertorier le contenu d'un bucket

  1. Exécutez la commande suivante pour répertorier le contenu du bucket :

    bundle exec ruby files.rb list my-awesome-bucket

    Si l'opération réussit, la commande affiche les éléments suivants :

    kitten.png
    kitten3.png
    

    Vous venez d'afficher le contenu de votre bucket.

Autoriser l'accès au bucket

  1. Exécutez la commande suivante pour autoriser une adresse e-mail spécifique à contrôler les objets de votre bucket :

    bundle exec ruby iam.rb add_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

    Si l'opération réussit, la commande affiche les éléments suivants :

    Added user:jane@gmail.com with role roles/storage.objectAdmin to my-awesome-bucket

    Un autre utilisateur peut maintenant ajouter des éléments à votre bucket ou afficher son contenu.

  2. Pour supprimer cette autorisation, exécutez la commande suivante :

    bundle exec ruby iam.rb remove_bucket_iam_member my-awesome-bucket roles/storage.objectAdmin user:jane@gmail.com

    Si l'opération réussit, la commande affiche les éléments suivants :

    Removed user:jane@gmail.com with role roles/storage.objectAdmin from my-awesome-bucket

    Vous venez de supprimer l'accès de l'utilisateur à ce bucket.

Supprimer des objets

  1. Exécutez la commande suivante pour supprimer un objet :

    bundle exec ruby files.rb delete my-awesome-bucket kitten.png

    Si l'opération réussit, la commande affiche les éléments suivants :

    Deleted kitten.png

    Cette copie de l'objet n'est plus stockée dans Cloud Storage (mais la copie que vous avez nommée kitten3.png existe encore).

Effectuer un nettoyage

Afin d'éviter que des frais ne soient facturés sur votre compte GCP pour les ressources utilisées dans ce démarrage rapide, procédez comme suit :

  1. Exécutez la commande suivante pour supprimer l'image kitten3.png de votre bucket :

    bundle exec ruby files.rb delete my-awesome-bucket kitten3.png
  2. Exécutez la commande suivante pour supprimer le bucket :

    bundle exec ruby buckets.rb delete my-awesome-bucket

    Si l'opération réussit, la commande renvoie un message semblable à celui indiqué ci-dessous :

    Deleted bucket: my-awesome-bucket

    Vous venez de supprimer votre bucket et son contenu.

Étapes suivantes

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.