En esta página, se describe cómo cambiar la clase de almacenamiento de los objetos dentro de un bucket mediante la reescritura del objeto. Para aprender a cambiar las clases de almacenamiento de objetos sin reescribir un objeto, consulta la función Administración del ciclo de vida de los objetos.
Requisitos previos
Los requisitos previos pueden variar según la herramienta que se use:
Console
Las clases de almacenamiento de objetos individuales no se pueden configurar a través de Google Cloud Console. En su lugar, usa la línea de comandos.
Línea de comandos
Para completar esta guía con una utilidad de línea de comandos, debes tener los permisos de IAM adecuados. Si el objeto al que deseas acceder existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios.
Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para los comandos de gsutil.
Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
Muestras de código
Para completar esta guía con las bibliotecas cliente de Cloud Storage, debes tener los permisos de IAM adecuados. Si el objeto al que deseas acceder existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios. A menos que se indique lo contrario, las solicitudes de la biblioteca cliente se realizan mediante la API de JSON.
Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.
Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
API de REST
API de JSON
Para completar esta guía con la API de JSON, debes tener los permisos de IAM adecuados. Si el objeto al que deseas acceder existe en un proyecto que no creaste, es posible que necesites que el propietario del proyecto te otorgue una función con los permisos necesarios.
Si deseas obtener una lista de los permisos necesarios para acciones específicas, consulta Permisos de IAM para métodos JSON.
Para obtener una lista de los roles relevantes, consulta Funciones de Cloud Storage. Como alternativa, puedes crear un rol personalizado que tenga permisos más limitados.
Cambia la clase de almacenamiento de un objeto
Completa los siguientes pasos para cambiar la clase de almacenamiento de un objeto:
Console
Las clases de almacenamiento de objetos individuales no se pueden configurar a través de Google Cloud Console. En su lugar, usa la línea de comandos.
Línea de comandos
gcloud
Usa el comando gcloud alpha storage objects update
con la marca --storage-class
. Por ejemplo:
gcloud alpha storage objects update gs://BUCKET_NAME/OBJECT_NAME --storage-class=STORAGE_CLASS
Aquí:
BUCKET_NAME
es el nombre del bucket que contiene el objeto cuya clase deseas cambiar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre del objeto al que le quieres cambiar la clase. Por ejemplo,pets/dog.png
.STORAGE_CLASS
es la clase de almacenamiento nueva del objeto. Por ejemplo,nearline
.
gsutil
Usa la marca -s
en un comando gsutil rewrite
. Por ejemplo:
gsutil rewrite -s STORAGE_CLASS gs://BUCKET_NAME/OBJECT_NAME
Aquí:
STORAGE_CLASS
es la clase de almacenamiento nueva del objeto. Por ejemplo,nearline
.BUCKET_NAME
es el nombre del bucket que contiene el objeto cuya clase deseas cambiar. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre del objeto al que le quieres cambiar la clase. Por ejemplo,pets/dog.png
.
Muestras de código
C++
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C++.
C#
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para C#.
Go
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Go.
Java
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Java.
Node.js
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Node.js.
PHP
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para PHP.
Python
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Python.
Ruby
Si deseas obtener más información, consulta la documentación de referencia de la API de Cloud Storage para Ruby.
API de REST
API de JSON
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Crea un archivo JSON que contenga la siguiente información:
{ "storageClass": "STORAGE_CLASS" }
Aquí:
STORAGE_CLASS
es la clase de almacenamiento nueva del objeto. Por ejemplo,nearline
.
Usa
cURL
para llamar a la API de JSON con una solicitud de objetoPOST
:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME/rewriteTo/b/BUCKET_NAME/o/OBJECT_NAME"
Aquí:
JSON_FILE_NAME
es la ruta de acceso del archivo JSON que creaste en el paso 2.OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.BUCKET_NAME
es el nombre del bucket que contiene el objeto original. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL del objeto. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
API de XML
- Obtén un token de autorización de acceso de OAuth 2.0 Playground. Configura Playground para usar tus credenciales de OAuth. Para obtener instrucciones, consulta Autenticación de la API.
Usa
cURL
para llamar a la API de XML con una solicitud de objetoPUT
:curl -X PUT --data-binary @OBJECT \ -H "Authorization: Bearer OAUTH2_TOKEN" \ -H "Content-Type: OBJECT_CONTENT_TYPE" \ -H "x-goog-storage-class: STORAGE_CLASS" \ "https://storage.googleapis.com/BUCKET_NAME/OBJECT_NAME"
En el ejemplo anterior, se ilustra lo siguiente:
OBJECT
es la ruta de acceso local al objeto del que quieres cambiar la clase de almacenamiento (debes volver a subir el objeto cuando cambies la clase de almacenamiento con la API de XML). Por ejemplo,Desktop/dog.png
.OAUTH2_TOKEN
es el token de acceso que generaste en el paso 1.OBJECT_CONTENT_TYPE
es el tipo de contenido del objeto. Por ejemplo,image/png
.STORAGE_CLASS
es la clase de almacenamiento nueva del objeto. Por ejemplo,nearline
.BUCKET_NAME
es el nombre del bucket que contiene el objeto que reescribes. Por ejemplo,my-bucket
.OBJECT_NAME
es el nombre codificado en URL del objeto que deseas volver a escribir. Por ejemplo,pets/dog.png
, codificado en URL comopets%2Fdog.png
.
¿Qué sigue?
- Obtén información sobre las clases de almacenamiento disponibles.
- Cambia las clases de almacenamiento de los objetos con la administración del ciclo de vida de los objetos.
- Obtén información sobre los metadatos de los objetos.