Descubrir el almacenamiento de objetos con la herramienta gcloud

En esta página se muestra cómo realizar tareas básicas en Cloud Storage con la herramienta de línea de comandos gcloud.

Los costes que se te aplican en Cloud Storage se basan en los recursos que utilizas. En esta guía de inicio rápido se suelen usar recursos de Cloud Storage por un valor inferior a 0,01 USD.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/storage.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  8. Install the Google Cloud CLI.

  9. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/storage.admin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  14. Crear un segmento

    Los segmentos son los contenedores básicos que almacenan tus datos en Cloud Storage.

    Para crear un segmento, sigue estas instrucciones:

    1. Abre una ventana de terminal.
    2. Usa el comando gcloud storage buckets create y un nombre único para crear un segmento:

      gcloud storage buckets create gs://my-awesome-bucket/ --uniform-bucket-level-access

      En este ejemplo, se usa un segmento llamado "my-awesome-bucket". Para empezar, tienes que elegir un nombre para tu segmento, que debe ser único de forma global.

      Si la acción se realiza correctamente, el comando mostrará lo siguiente:

      Creating gs://my-awesome-bucket/...

    Acabas de crear un segmento en el que puedes almacenar tus datos.

    Creating gs://my-awesome-bucket/...
    ServiceException: 409 Bucket my-awesome-bucket already exists.
    

    En este caso, vuelve a intentar este paso con un nombre de segmento diferente.

    Subir un objeto a un segmento

    La imagen de un gatito que se va a subir al contenedor.

    1. Haz clic con el botón derecho en la imagen de arriba y guárdala en algún lugar de tu ordenador, como el escritorio.

    2. Usa el comando gcloud storage cp para copiar la imagen de la ubicación en la que la guardaste al segmento que has creado:

      gcloud storage cp Desktop/kitten.png gs://my-awesome-bucket

      Si la acción se realiza correctamente, el comando mostrará lo siguiente:

      Copying file://Desktop/kitten.png [Content-Type=image/png]...
      Uploading   gs://my-awesome-bucket/kitten.png:       0 B/164.3 KiB
      Uploading   gs://my-awesome-bucket/kitten.png:       164.3 KiB/164.3 KiB

      Acabas de almacenar un objeto en tu segmento.

    Descargar el objeto de tu contenedor

    1. Usa el comando gcloud storage cp para descargar la imagen que has almacenado en tu segmento en alguna ubicación de tu ordenador, como el escritorio:

      gcloud storage cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png

      Si la acción se realiza correctamente, el comando mostrará lo siguiente:

      Copying gs://my-awesome-bucket/kitten.png...
      Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
      Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

      Acabas de descargar algo de tu contenedor.

    Copia el objeto en una carpeta del segmento

    1. Usa el comando gcloud storage cp para crear una carpeta y copiar la imagen en ella:

      gcloud storage cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

      Si la acción se realiza correctamente, el comando mostrará lo siguiente:

      Copying gs://my-awesome-bucket/kitten.png [Content-Type=image/png]...
      Copying     ...my-awesome-bucket/just-a-folder/kitten3.png: 164.3 KiB/164.3 KiB

      Acabas de copiar la imagen en una carpeta nueva de tu contenedor.

    Mostrar el contenido de un segmento o una carpeta

    1. Usa el comando gcloud storage ls para enumerar el contenido del nivel superior de tu contenedor:

      gcloud storage ls gs://my-awesome-bucket

      Si la acción se realiza correctamente, el comando devuelve un mensaje similar al siguiente:

      gs://my-awesome-bucket/kitten.png
      gs://my-awesome-bucket/just-a-folder/

      Acabas de ver el contenido del nivel superior de tu contenedor.

    Mostrar los detalles de un objeto

    1. Usa el comando gcloud storage ls con la marca --long para obtener información sobre una de tus imágenes:

      gcloud storage ls gs://my-awesome-bucket/kitten.png --long

      Si la acción se realiza correctamente, el comando devuelve un mensaje similar al siguiente:

      2638  2016-02-26T23:05:14Z  gs://my-awesome-bucket/kitten.png
      TOTAL: 1 objects, 168243.2 bytes (164.3 KiB)

      Acabas de obtener información sobre el tamaño y la fecha de creación de la imagen.

    Hacer que los objetos sean de acceso público

    1. Usa el comando gcloud storage buckets add-iam-policy-binding para conceder permiso a todos los usuarios para leer las imágenes almacenadas en tu segmento:

      gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

      El comando se habrá ejecutado correctamente si tu respuesta contiene lo siguiente:

      bindings:
        - members:
          - allUsers
          role: roles/storage.objectViewer
      

      Ahora cualquier persona puede obtener tus imágenes.

    2. Para quitar este acceso, usa el comando:

      gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=allUsers --role=roles/storage.objectViewer

      El comando se ejecuta correctamente si no se devuelve ningún error.

      Has eliminado el acceso público a las imágenes de tu segmento.

    Dar acceso a un usuario a tu cubo

    1. Usa el comando gcloud storage buckets add-iam-policy-binding para dar permiso a una dirección de correo específica para añadir objetos a tu segmento:

      gcloud storage buckets add-iam-policy-binding gs://my-awesome-bucket --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

      El comando se habrá ejecutado correctamente si tu respuesta contiene lo siguiente:

      bindings:
        - members:
          - user:jeffersonloveshiking@gmail.com
          role: roles/storage.objectCreator
      

      Ahora, otra persona puede añadir elementos a tu contenedor.

    2. Para quitar este permiso, usa el comando:

      gcloud storage buckets remove-iam-policy-binding gs://my-awesome-bucket --member=user:jeffersonloveshiking@gmail.com --role=roles/storage.objectCreator

      El comando se ejecuta correctamente si no se devuelve ningún error.

      Has quitado el acceso del usuario a este contenedor.

    Eliminar un objeto

    1. Utiliza el comando gcloud storage rm para eliminar una de tus imágenes:

      gcloud storage rm gs://my-awesome-bucket/kitten.png

      Si la acción se realiza correctamente, el comando mostrará lo siguiente:

      Removing gs://my-awesome-bucket/kitten.png...

      Esta copia de la imagen ya no está almacenada en Cloud Storage (aunque la copia que hiciste en la carpeta just-a-folder/ sigue existiendo).

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.

    1. Abre una ventana de terminal (si aún no lo has hecho).
    2. Usa el comando gcloud storage rm con la marca --recursive para eliminar el contenedor y todo lo que haya en él:

      gcloud storage rm gs://my-awesome-bucket --recursive

      Si la acción se realiza correctamente, el comando devuelve un mensaje similar al siguiente:

      Removing gs://my-awesome-bucket/just-a-folder/cloud-storage.logo.png#1456530077282000...
      Removing gs://my-awesome-bucket/...

      Se eliminarán el segmento y su contenido.

    Siguientes pasos