Subir objetos desde un sistema de archivos (original) (raw)

En esta página se explica cómo subir objetos a tu segmento de Cloud Storage desde tu sistema de archivos local. Un objeto subido consta de los datos que quieres almacenar junto con los metadatos asociados. Para obtener una descripción general conceptual, incluido cómo elegir el método de subida óptimo en función del tamaño del archivo, consulta Subidas y descargas.

Para obtener los permisos que necesitas para subir objetos a un segmento, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Usuario de objetos de Storage (roles/storage.objectUser) en el segmento. Este rol predefinido contiene los permisos necesarios para subir un objeto a un segmento. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Si tienes previsto usar la consola para realizar las tareas de esta página, también necesitarás el permiso storage.buckets.list, que no se incluye en el rol Usuario de objeto de almacenamiento (roles/storage.objectUser). Google Cloud Para obtener este permiso, pide a tu administrador que te conceda el rol Administrador de Storage (roles/storage.admin) en el proyecto.

Consola

  1. En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
    Ir a Contenedores
  2. En la lista de segmentos, haga clic en el nombre del segmento al que quiera subir un objeto.
  3. En la pestaña Objetos del segmento, haz una de las siguientes acciones:
    • Arrastra los archivos desde el escritorio o el gestor de archivos al panel principal de la consola Google Cloud .
    • Haz clic en Subir > Subir archivos, selecciona los archivos que quieras subir en el cuadro de diálogo que aparece y, a continuación, haz clic en Abrir.

Para saber cómo obtener información detallada sobre los errores de las operaciones de Cloud Storage en la consola de Google Cloud , consulta la sección Solución de problemas.

Línea de comandos

Usa el comando gcloud storage cp:

gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME

Donde:

Si la acción se realiza correctamente, la respuesta se parecerá al siguiente ejemplo:

Completed files 1/1 | 164.3kiB/164.3kiB

Puede definir metadatos de objeto de clave fija y personalizados como parte de la subida de objetos mediante marcas de comando.

Bibliotecas de cliente

C++

Para obtener más información, consulta ladocumentación de referencia de la API C++ de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

C#

Para obtener más información, consulta ladocumentación de referencia de la API C# de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Go

Para obtener más información, consulta ladocumentación de referencia de la API Go de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Java

Para obtener más información, consulta ladocumentación de referencia de la API Java de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se sube un objeto individual:

En el siguiente ejemplo se suben varios objetos simultáneamente:

En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:

Node.js

Para obtener más información, consulta ladocumentación de referencia de la API Node.js de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se sube un objeto individual:

En el siguiente ejemplo se suben varios objetos simultáneamente:

En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:

PHP

Para obtener más información, consulta ladocumentación de referencia de la API PHP de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Python

Para obtener más información, consulta ladocumentación de referencia de la API Python de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

En el siguiente ejemplo se sube un objeto individual:

En el siguiente ejemplo se suben varios objetos simultáneamente:

En el siguiente ejemplo se suben todos los objetos con un prefijo común de forma simultánea:

Ruby

Para obtener más información, consulta ladocumentación de referencia de la API Ruby de Cloud Storage.

Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación para bibliotecas de cliente.

Terraform

Puedes usar un recurso de Terraform para subir un objeto. Se debe especificar content o source.

APIs REST

API JSON

La API JSON distingue entre las subidas de contenido multimedia, en las que solo se incluyen datos de objetos en la solicitud, y las subidas multiparte de la API JSON, en las que se incluyen tanto los datos de objetos como los metadatos de objetos en la solicitud.

Subida de contenido multimedia (una subida de una sola solicitud sin metadatos de objeto)

  1. Tener gcloud CLI instalado e inicializado, lo que te permite generar un token de acceso para el encabezado Authorization.
  2. Usa cURL para llamar a la API JSON con una solicitud POST Object:
    curl -X POST --data-binary @OBJECT_LOCATION \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: OBJECT_CONTENT_TYPE" \
    "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=OBJECT_NAME"
    Donde:
    • OBJECT_LOCATION es la ruta local a tu objeto. Por ejemplo, Desktop/dog.png.
    • OBJECT_CONTENT_TYPE es el tipo de contenido del objeto. Por ejemplo, image/png.
    • BUCKET_NAME es el nombre del segmento al que subes el objeto. Por ejemplo, my-bucket.
    • OBJECT_NAME es el nombre codificado en URL que quieres dar al objeto. Por ejemplo, pets/dog.png, codificado como URL pets%2Fdog.png.

Subida multipart de la API JSON (una subida de una sola solicitud que incluye metadatos de objetos)

  1. Tener gcloud CLI instalado e inicializado, lo que te permite generar un token de acceso para el encabezado Authorization.
  2. Crea un archivo multipart/related que contenga la siguiente información:
    --BOUNDARY_STRING
    Content-Type: application/json; charset=UTF-8
    OBJECT_METADATA
    --BOUNDARY_STRING
    Content-Type: OBJECT_CONTENT_TYPE
    OBJECT_DATA
    --BOUNDARY_STRING--
    Donde:
    • BOUNDARY_STRING es una cadena que defines para identificar las diferentes partes del archivo multiparte. Por ejemplo, separator_string.
    • OBJECT_METADATA son los metadatos que quieres incluir en el archivo, en formato JSON. Como mínimo, esta sección debe incluir un atributo name para el objeto, como {"name": "myObject"}.
    • OBJECT_CONTENT_TYPE es el tipo de contenido del objeto. Por ejemplo, text/plain.
    • OBJECT_DATA son los datos del objeto.
      Por ejemplo:
      --separator_string
      Content-Type: application/json; charset=UTF-8
      {"name":"my-document.txt"}
      --separator_string
      Content-Type: text/plain
      This is a text file.
      --separator_string--
  3. Usa cURL para llamar a la API JSON con un objeto POST de solicitud:
    curl -X POST --data-binary @MULTIPART_FILE_LOCATION \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: multipart/related; boundary=BOUNDARY_STRING" \
    -H "Content-Length: MULTIPART_FILE_SIZE" \
    "https://storage.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=multipart"
    Donde:
    • MULTIPART_FILE_LOCATION es la ruta local al archivo multiparte que has creado en el paso 2. Por ejemplo, Desktop/my-upload.multipart.
    • BOUNDARY_STRING es la cadena de límite que has definido en el paso 2. Por ejemplo, my-boundary.
    • MULTIPART_FILE_SIZE es el tamaño total, en bytes, del archivo multiparte que ha creado en el paso 2. Por ejemplo, 2000000.
    • BUCKET_NAME es el nombre del segmento al que subes el objeto. Por ejemplo, my-bucket.

Si la solicitud se realiza correctamente, el servidor devuelve el código de estado HTTP 200 OK junto con los metadatos del archivo.

API XML

  1. Tener gcloud CLI instalado e inicializado, lo que te permite generar un token de acceso para el encabezado Authorization.
  2. Usa cURL para llamar a la API XML con una solicitud PUT Object:
    curl -X PUT --data-binary @OBJECT_LOCATION \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: OBJECT_CONTENT_TYPE" \
    "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
    Donde:
    • OBJECT_LOCATION es la ruta local a tu objeto. Por ejemplo, Desktop/dog.png.
    • OBJECT_CONTENT_TYPE es el tipo de contenido del objeto. Por ejemplo, image/png.
    • BUCKET_NAME es el nombre del segmento al que subes el objeto. Por ejemplo, my-bucket.
    • OBJECT_NAME es el nombre codificado en URL que quieres dar a tu objeto. Por ejemplo, pets/dog.png, codificado como URL pets%2Fdog.png.

Puedes definir metadatos de objeto adicionales como parte de la subida del objeto en los encabezados de la solicitud, de la misma forma que se define Content-Type en el ejemplo anterior. Cuando se trabaja con la API XML, los metadatos solo se pueden definir en el momento en que se escribe el objeto, por ejemplo, al subir, copiar o sustituir el objeto. Para obtener más información, consulta Editar metadatos de objetos.

Línea de comandos

Usa el comando gcloud storage rsync con la marca --recursive:

gcloud storage rsync --recursive LOCAL_DIRECTORY gs://DESTINATION_BUCKET_NAME/FOLDER_NAME

Donde:

Si la acción se realiza correctamente, la respuesta se parecerá al siguiente ejemplo:

Completed files 1/1 | 5.6kiB/5.6kiB

Puede definir metadatos de objetos personalizados y de clave fija como parte de la subida de objetos mediante marcas de comando.