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. Install the Google Cloud CLI.

  2. Configura gcloud CLI para que use tu identidad federada.

    Para obtener más información, consulta el artículo Iniciar sesión en la CLI de gcloud con tu identidad federada.

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

    gcloud init
  4. Create or select a Trusted 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 Trusted Cloud project:

      gcloud projects create PROJECT_ID

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

    • Select the Trusted Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Trusted Cloud project name.

  5. Verify that billing is enabled for your Trusted Cloud project.

  6. 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:

  7. 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 --location=LOCATION_NAME

      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:example-service-account@example-project.s3ns.iam.gserviceaccount.com --role=roles/storage.objectCreator

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

      bindings:
        - members:
          - user:example-service-account@example-project.s3ns.iam.gserviceaccount.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:example-service-account@example-project.s3ns.iam.gserviceaccount.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 Trusted Cloud cuenta por los recursos utilizados en esta página, elimina el Trusted 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