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 instrucciones sobre cómo subir objetos desde la memoria, consulta Subir objetos desde la memoria.
Roles obligatorios
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:
Permisos obligatorios
storage.objects.create
storage.objects.delete
- Este permiso solo es necesario para las subidas que sobrescriben un objeto.
storage.objects.get
- Este permiso solo es necesario si tienes previsto usar la CLI de Google Cloud para realizar las tareas de esta página.
storage.objects.list
- Este permiso solo es necesario si tienes previsto usar la CLI de Google Cloud para realizar las tareas de esta página. Este permiso también es necesario si quieres usar la consola de Google Cloud para verificar los objetos que has subido.
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.
También puedes obtener estos permisos con otros roles predefinidos o roles personalizados.
Para obtener información sobre cómo conceder roles en los contenedores, consulta Usar IAM con contenedores.
Subir un objeto a un segmento
Para subir un objeto a un contenedor, siga estos pasos:
Consola
- En la Google Cloud consola, ve a la página Segmentos de Cloud Storage.
En la lista de segmentos, haga clic en el nombre del segmento al que quiera subir un objeto.
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, consulta la sección Solución de problemas. Google Cloud
Línea de comandos
Usa el comando gcloud storage cp
:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME
Donde:
OBJECT_LOCATION
es la ruta local a tu objeto. Por ejemplo,Desktop/dog.png
.DESTINATION_BUCKET_NAME
es el nombre del contenedor al que subes el objeto. Por ejemplo,my-bucket
.
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 objetos personalizados y de clave fija como parte de la subida de objetos mediante marcas de comando.
Bibliotecas de cliente
C++
Para obtener más información, consulta la documentació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 la documentació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 la documentació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 la documentació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 la documentació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 la documentació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 la documentació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 la documentació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)
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API JSON con un objetoPOST
de solicitud: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 URLpets%2Fdog.png
.
Subida multipart de la API JSON (una subida de una sola solicitud que incluye metadatos de objetos)
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.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 atributoname
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--
Usa
cURL
para llamar a la API JSON con una solicitud dePOST
Object: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
Tener instalada e inicializadala CLI de gcloud, que te permite generar un token de acceso para el encabezado
Authorization
.Usa
cURL
para llamar a la API XML con una solicitudPUT
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 al objeto. Por ejemplo,pets/dog.png
, codificado como URLpets%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.
Subir el contenido de un directorio a un segmento
Sigue estos pasos para copiar el contenido de un directorio en un bucket:
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:
LOCAL_DIRECTORY
es la ruta al directorio que contiene los archivos que quieres subir como objetos. Por ejemplo,~/my_directory
.DESTINATION_BUCKET_NAME
es el nombre del contenedor al que quieres subir objetos. Por ejemplo,my-bucket
.FOLDER_NAME
(opcional) es el nombre de la carpeta del segmento a la que quieres subir objetos. Por ejemplo,my-folder
.
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.
Siguientes pasos
- Consulte los requisitos de nomenclatura de los objetos.
- Consulta información sobre cómo usar carpetas para organizar tus objetos.
- Transfiere objetos desde tu instancia de Compute Engine.
- Transfiere datos de proveedores de la nube u otras fuentes online, como listas de URLs.
- Controla quién tiene acceso a tus objetos y segmentos.
- Consulta los metadatos de tu objeto, incluida la URL del objeto.
Pruébalo
Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.
Probar Cloud Storage gratis