En esta página, se muestra cómo subir objetos a tu bucket de Cloud Storage desde tu sistema de archivos local. Un objeto subido consiste en los datos que deseas almacenar junto con los metadatos asociados. Para obtener una descripción general conceptual, incluido cómo elegir el método de carga óptimo en función del tamaño del archivo, consulta Cargas y descargas.
Para obtener instrucciones sobre cómo subir objetos desde la memoria, consulta Sube objetos desde la memoria.
Roles obligatorios
Para obtener los permisos que necesitas a fin de subir objetos a un bucket, pídele a tu administrador que te otorgue el rol de IAM Usuario de objetos de almacenamiento (roles/storage.objectUser
) para el bucket. Este rol predefinido contiene los permisos necesarios para subir un objeto a un bucket. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
storage.objects.create
storage.objects.delete
- Este permiso solo es necesario para las cargas que reemplazan un objeto existente.
storage.objects.get
- Este permiso solo es necesario si planeas usar Google Cloud CLI para realizar las tareas en esta página.
storage.objects.list
- Este permiso solo es necesario si planeas usar Google Cloud CLI para realizar las tareas en esta página. Este permiso también es necesario si deseas usar la consola de Google Cloud para verificar los objetos que subiste.
Si planeas usar la consola de Google Cloud 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 objetos de Storage (roles/storage.objectUser
). Para obtener este permiso, pídele a tu administrador que te otorgue el rol Administrador de almacenamiento (roles/storage.admin
) en el proyecto.
También puedes obtener estos permisos con otros roles predefinidos o roles personalizados.
Para obtener más información sobre cómo otorgar roles en los buckets, consulta Usa IAM con buckets.
Subirás un objeto a un bucket.
Sigue los pasos a continuación para subir un objeto a un bucket:
Console
- En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.
En la lista de buckets, haz clic en el nombre del bucket al que deseas subir un objeto.
En la pestaña Objetos para el depósito, realiza una de estas dos acciones:
Arrastra archivos desde tu escritorio o administrador de archivos al panel principal en la consola de Google Cloud.
Haz clic en el botón Subir archivos, selecciona los archivos que deseas subir en el cuadro de diálogo que aparece y haz clic en Abrir.
Para obtener información sobre cómo ver detalles de errores acerca de operaciones fallidas de Cloud Storage en la consola de Google Cloud, consulta Solución de problemas.
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 de acceso local a tu objeto. Por ejemplo,Desktop/dog.png
.DESTINATION_BUCKET_NAME
es el nombre del bucket al que subes el objeto. Por ejemplo,my-bucket
Si se ejecuta de forma correcta, la respuesta se parece al siguiente ejemplo:
Completed files 1/1 | 164.3kiB/164.3kiB
Puedes configurar metadatos de objetos de clave fija y personalizada como parte de la carga de objetos mediante marcas de comandos.
Bibliotecas cliente
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C++.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage C#.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Go.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Java.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
En el siguiente ejemplo, se sube un objeto individual:
En el siguiente ejemplo, se suben varios objetos de forma simultánea:
En el siguiente ejemplo, se suben todos los objetos con un prefijo común de forma simultánea:
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Node.js.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
En el siguiente ejemplo, se sube un objeto individual:
En el siguiente ejemplo, se suben varios objetos de forma simultánea:
En el siguiente ejemplo, se suben todos los objetos con un prefijo común de forma simultánea:
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage PHP.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Python.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
En el siguiente ejemplo, se sube un objeto individual:
En el siguiente ejemplo, se suben varios objetos de forma simultánea:
En el siguiente ejemplo, se suben todos los objetos con un prefijo común de forma simultánea:
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage Ruby.
Para autenticarte en Cloud Storage, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Terraform
Puedes usar un recurso de Terraform para subir un objeto.
Se debe especificar content
o source
.
API de REST
API de JSON
La API de JSON distingue entre las cargas de contenido multimedia, en las que solo se incluyen datos de objetos en la solicitud, y las cargas de varias partes de la API de JSON, en las que los datos de objeto y los metadatos de objeto se incluyen en la solicitud.
Carga de contenido multimedia (carga de una sola solicitud sin metadatos de objeto)
Tener la gcloud CLI instalada e inicializadapara generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de JSON con una solicitud de objetoPOST
: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 de acceso 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 bucket al que subes el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL que deseas darle a tu objeto. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
Carga de varias partes de la API de JSON (carga de una sola solicitud que incluye metadatos de objeto)
Tener la gcloud CLI instalada e inicializadapara generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en 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 string que defines para identificar las diferentes partes del archivo de varias partes. Por ejemplo,separator_string
.OBJECT_METADATA
son metadatos que deseas incluir para el archivo, en formato JSON. Como mínimo, esta sección debe incluir un atributoname
para el objeto, por ejemplo{"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 de JSON con una solicitud de objetoPOST
: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 creaste en el paso 2. Por ejemplo,Desktop/my-upload.multipart
.BOUNDARY_STRING
es la string de límite que definiste en el paso 2. Por ejemplo,my-boundary
.MULTIPART_FILE_SIZE
es el tamaño total, en bytes, del archivo de varias partes que creaste en el paso 2. Por ejemplo,2000000
.BUCKET_NAME
es el nombre del bucket al que subes el objeto. Por ejemplo,my-bucket
.
Si la solicitud se realiza correctamente, el servidor muestra el código de estado HTTP 200 OK
junto con los metadatos del archivo.
API de XML
Tener la gcloud CLI instalada e inicializadaa fin de generar un token de acceso para el encabezado
Authorization
.Como alternativa, puedes crear un token de acceso con OAuth 2.0 Playground y, luego, incluirlo en el encabezado
Authorization
.Usa
cURL
para llamar a la API de XML con una solicitud de objetoPUT
: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 de acceso 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 bucket al que subes el objeto. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL que deseas darle a tu objeto. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
Puedes configurar metadatos de objeto adicionales como parte de la carga del objeto en los encabezados de la solicitud, de la misma manera que el ejemplo anterior configura Content-Type
. Cuando trabajas con la API de XML, los metadatos solo pueden configurarse en el momento en que se escribe el objeto, como cuando se lo sube, copia o reemplaza. Para obtener más información, consulta Edita los metadatos de objetos.
¿Qué sigue?
- Obtén más información sobre cómo nombrar nombres para objetos.
- Transfiere objetos desde tu instancia de Compute Engine.
- Transfiere datos desde proveedores de servicios en la nube o desde otras fuentes en línea, como listas de URL.
- Controla quién tiene acceso a tus objetos y buckets.
- Visualiza los metadatos de tu objeto, incluida la URL del objeto.
Pruébalo tú mismo
Si es la primera vez que usas Google Cloud, crea una cuenta para evaluar el rendimiento de Cloud Storage en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
Probar Cloud Storage gratis