En esta página, se describe cómo adjuntar y administrar contextos en objetos de Cloud Storage en forma de pares clave-valor.
Obtén los roles necesarios
Para obtener los permisos que necesitas para crear y administrar contextos de objetos, pídele a tu administrador que te otorgue los siguientes roles de IAM en el objeto:
-
Crea objetos con contextos:
Creador de objetos de Storage (
roles/storage.objectCreator) -
Adjuntar, actualizar, ver y borrar contextos de objetos:
Usuario de objetos de almacenamiento (
roles/storage.objectUser) -
Consulta las claves y los valores de contexto adjuntos a los objetos:
Visualizador de objetos de Storage (
roles/storage.objectViewer) -
Se descartan los contextos de objetos durante las operaciones de reescritura, copia y composición:
Propietario de objetos heredados de almacenamiento (
roles/storage.legacyObjectOwner)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para crear y administrar contextos de objetos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y administrar contextos de objetos:
-
Crea un objeto con contextos de objeto:
-
storage.objects.create -
storage.objects.createContext
-
-
Adjunta, actualiza y borra contextos de objetos:
-
storage.objects.update -
storage.objects.createContext -
storage.objects.updateContext -
storage.objects.deleteContext
-
-
Contextos de soltar objetos:
storage.objects.dropContexts -
Ver contextos de objetos:
-
storage.objects.get -
storage.objects.list
-
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Cómo adjuntar contextos a objetos nuevos
Adjunta contextos a los objetos cuando subas objetos nuevos a los buckets de Cloud Storage. Cada contexto consta de una clave y un valor.
Línea de comandos
Para adjuntar contextos cuando subas objetos con el comando gcloud storage cp, usa la marca --custom-contexts:
gcloud storage cp OBJECT_LOCATION gs://DESTINATION_BUCKET_NAME --custom-contexts=KEY=VALUE,...
Aquí:
OBJECT_LOCATIONes la ruta de acceso local a tu objeto. Por ejemplo,Desktop/employees.txt.DESTINATION_BUCKET_NAMEes el nombre del bucket al que subes el objeto. Por ejemplo,my-bucket.KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
Como alternativa, crea un archivo JSON que contenga los contextos que deseas adjuntar a los objetos y usa la marca --custom-contexts-file:
{ "KEY": { "value": "VALUE" }, ... }
Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
Para adjuntar contextos cuando subes directorios con el comando gcloud storage rsync, usa la marca --custom-contexts o la marca --custom-contexts-file:
gcloud storage rsync DIRECTORY_LOCATION gs://DESTINATION_BUCKET_NAME --recursive --custom-contexts=KEY=VALUE,...
Aquí:
DIRECTORY_LOCATIONes la ruta de acceso local a tu directorio. Por ejemplo,~/my_directoryDESTINATION_BUCKET_NAMEes el nombre del bucket al que subes tu directorio. Por ejemplo,my-bucket.KEYes la clave de contexto que se adjuntará a los objetos. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
API de JSON
Para adjuntar contextos a objetos cuando subas objetos nuevos, usa cualquiera de los siguientes métodos:
Como parte de los metadatos del objeto en formato JSON, incluye el campo contexts:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor en el objetocustom.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
Cómo adjuntar o modificar contextos en un objeto existente
Puedes adjuntar contextos nuevos a tus objetos existentes en los buckets de Cloud Storage.
Línea de comandos
Usa el comando gcloud storage objects update:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME CUSTOM_CONTEXTS_FLAG
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene el objeto para el que deseas editar el contexto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre del objeto. Por ejemplo,employees.txt.CUSTOM_CONTEXTS_FLAGes cualquiera de las siguientes marcas:Para reemplazar todos los contextos existentes, usa
--custom-contexts=KEY=VALUE,...o--custom-contexts-file=CUSTOM_CONTEXTS_FILE.Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resourcesCUSTOM_CONTEXTS_FILEes la ruta de acceso al archivo JSON o YAML que contiene los contextos que deseas adjuntar al objeto.
Para borrar todos los contextos existentes, usa la marca
--clear-custom-contexts.Para agregar, modificar o borrar contextos individuales, usa una combinación de
--update-custom-contexts=KEY=VALUE,...y--remove-custom-contexts=KEY,....Aquí:
KEYes la clave de contexto que deseas adjuntar a un objeto o borrar de él. Por ejemplo,DepartmentVALUEes el valor que se asociará con la clave de contexto que deseas adjuntar a un objeto o borrar de él. Por ejemplo,Human resources.
Si se ejecuta de forma correcta, la respuesta se parece al siguiente ejemplo:
Patching gs://my-bucket/employees.txt#1560574162144861... Completed 1
Bibliotecas cliente
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 bibliotecas cliente.
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Crea un archivo JSON que contenga la configuración del objeto, que debe incluir los campos de configuración
contextspara el objeto.Para agregar, modificar o reemplazar contextos existentes, usa el siguiente formato:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" }, ... } } }
Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor en el objetocustom.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources.
Para borrar todos los contextos existentes, usa el siguiente formato:
{ "contexts": { "custom": null } }
Para borrar una clave específica del contexto, usa el siguiente formato:
{ "contexts": { "custom": { "KEY": null, ... } } }
Aquí:
KEYes la clave de contexto que deseas borrar de un objeto. Por ejemplo,DepartmentPuedes especificar varias claves para borrar del objetocustom.Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPATCH:curl -X PATCH --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Aquí:
JSON_FILE_NAMEes la ruta de acceso al archivo que incluye la información de los contextos de objetos.BUCKET_NAMEes el nombre del bucket que contiene el objeto para el que deseas editar el contexto. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto. Por ejemplo,employees.txt
También puedes reemplazar el contexto de un objeto con una solicitud de objeto PUT. La solicitud del objeto PUT también reemplaza otros metadatos del objeto. Por lo tanto, no recomendamos usar la solicitud de objeto PUT.
Cómo ver los contextos de objetos
Puedes ver los contextos de un objeto si enumeras los metadatos del objeto o describes un objeto específico.
Línea de comandos
Usa el comando gcloud storage objects describe:
gcloud storage objects describe gs://BUCKET_NAME/OBJECT_NAME
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene el objeto cuyo contexto deseas ver. Por ejemplo,my-bucketOBJECT_NAMEes el nombre del objeto cuyo contexto deseas ver. Por ejemplo,employees.txt
Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:
bucket: my-bucket
contexts:
Department:
createTime: '2023-01-01T00:00:00.000000+00:00'
type: CUSTOM
updateTime: '2023-01-01T00:00:00.000000+00:00'
value: Human resources
name: employees.txt
Bibliotecas cliente
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 bibliotecas cliente.
API de JSON
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Usa
cURLpara llamar a la API de JSON con una solicitud de objetoGET:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/OBJECT_NAME"
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene el objeto cuyo contexto deseas ver. Por ejemplo,my-bucket.OBJECT_NAMEes el nombre codificado en URL del objeto cuyo contexto deseas ver. Por ejemplo,employees.txt
Si se realiza de forma correcta, la respuesta se verá como el ejemplo siguiente:
{ "kind": "storage#object", "name": "employees.txt", "bucket": "my-bucket", "contexts": { "custom": { "Department": { "value": "Human resources", "createTime": "2023-01-01T00:00:00.000Z", "updateTime": "2023-01-01T00:00:00.000Z" } } } }
Cómo filtrar objetos por contextos
Filtrar objetos por la existencia de claves de contexto de objeto o sus valores específicos Filtrar objetos por contextos ayuda a ubicar y administrar grupos particulares de objetos de manera eficiente. Para obtener más información, consulta Cómo filtrar objetos por contextos.
Administra contextos de objetos durante las operaciones de objetos
De forma predeterminada, Cloud Storage conserva los contextos de los objetos cuando los copias, reescribes, compones, mueves o restableces.
Cómo copiar objetos
De forma predeterminada, Cloud Storage conserva los contextos de objetos del objeto de origen durante una operación de copia, incluso si anulas otros metadatos. Para modificar los contextos de objetos durante una operación de copia, completa los siguientes pasos:
Línea de comandos
Los comandos gcloud storage cp, gcloud storage rsync y gcloud storage mv conservan los contextos del objeto fuente de forma predeterminada. Para modificar los contextos durante estas operaciones, usa cualquiera de las siguientes marcas:
Es la marca
--custom-contextspara establecer contextos nuevos para el objeto de destino.Es la marca
--clear-custom-contextspara evitar que los contextos del objeto fuente se adjunten al objeto de destino.Es una combinación de las marcas
--update-custom-contextsy--remove-custom-contextspara modificar contextos individuales del objeto de origen antes de adjuntarlos al objeto de destino.
Para establecer contextos nuevos cuando copias un objeto, usa el comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,employees.txtDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,employees-backup.txtKEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
Para quitar todos los contextos del objeto de origen cuando copias un objeto, usa el comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,pets/dog.pngDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,pets/cat.png
Para modificar contextos individuales del objeto de origen cuando copias un objeto, usa el comando gcloud storage cp con --update-custom-contexts y --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,pets/dog.pngDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,pets/cat.pngKEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor o claves separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
API de JSON
Para anular contextos cuando copias un objeto, incluye la propiedad contexts.custom en el cuerpo de la solicitud:
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Crea un archivo JSON que contenga los contextos que se adjuntarán al objeto de destino:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,Department.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources.
Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOST:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Aquí:
JSON_FILE_NAMEes la ruta al archivo JSON que incluye la información de los contextos de objetos.SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucket.SOURCE_OBJECT_NAMEes el nombre codificado en URL del objeto que se copiará. Por ejemplo,employees.txtDESTINATION_BUCKET_NAMEes el nombre del bucket en el que se copiará el objeto. Por ejemplo,my-destination-bucket.DESTINATION_OBJECT_NAMEes el nombre codificado en URL del objeto de destino. Por ejemplo,employees-backup.txt
Para quitar todos los contextos de origen sin proporcionar una anulación, usa el parámetro de consulta dropContextGroups=custom en tu solicitud:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Para conservar los contextos, omite la propiedad contexts.custom del cuerpo de la solicitud y excluye dropContextGroups=custom en los parámetros de consulta:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/copyTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Para obtener información sobre el comportamiento de los contextos durante las operaciones de copia, consulta el parámetro de consulta dropContextGroups.
Reescribe objetos
De forma predeterminada, Cloud Storage conserva los contextos de objetos del objeto fuente durante una operación de reescritura, incluso si anulas otros metadatos. Para modificar los contextos de objetos durante una operación de reescritura, completa los siguientes pasos:
Línea de comandos
Los comandos gcloud storage cp, gcloud storage rsync y gcloud storage mv realizan reescrituras automáticamente cuando es necesario, por ejemplo, cuando se copian objetos entre diferentes ubicaciones o clases de almacenamiento. gcloud storage cp y gcloud storage rsync generan un objeto de origen y destino, mientras que gcloud storage mv crea el objeto de destino y quita el objeto de origen. Como estas operaciones crean un objeto nuevo, también puedes modificar o adjuntar contextos como parte del mismo comando usando cualquiera de las siguientes marcas:
Es la marca
--custom-contextspara establecer contextos nuevos para el objeto de destino.Es la marca
--clear-custom-contextspara evitar que los contextos del objeto fuente se adjunten al objeto de destino.Es una combinación de las marcas
--update-custom-contextsy--remove-custom-contextspara modificar contextos individuales del objeto de origen antes de adjuntarlos al objeto de destino.
Para establecer contextos nuevos cuando copias un objeto, usa el comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --custom-contexts=KEY=VALUE,...
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,employees.txtDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,employees-backup.txtKEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
Para quitar todos los contextos del objeto de origen cuando copias un objeto, usa el comando gcloud storage cp:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,pets/dog.pngDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,pets/cat.png
Para modificar contextos individuales del objeto de origen cuando copias un objeto, usa el comando gcloud storage cp con --update-custom-contexts y --remove-custom-contexts:
gcloud storage cp gs://SOURCE_BUCKET_NAME/SOURCE_OBJECT_NAME gs://DESTINATION_BUCKET_NAME/DESTINATION_OBJECT_NAME --update-custom-contexts=KEY=VALUE,... --remove-custom-contexts=KEY,...
Aquí:
SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se copiará. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre del objeto que se copiará. Por ejemplo,pets/dog.pngDESTINATION_BUCKET_NAMEes el nombre del bucket al que se copiará el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino. Por ejemplo,pets/cat.pngKEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor o claves separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources
API de JSON
Para anular los contextos cuando reescribes un objeto, incluye la propiedad contexts.custom en el cuerpo de la solicitud:
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Crea un archivo JSON que contenga los contextos que se adjuntarán al objeto de destino:
{ "contexts": { "custom": { "KEY": { "value": "VALUE" } } } }
Aquí:
KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo:Department.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo:Human resources.
Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOSTde reescritura:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Aquí:
JSON_FILE_NAMEes la ruta al archivo JSON que incluye la información de los contextos de objetos.SOURCE_BUCKET_NAMEes el nombre del bucket que contiene el objeto que se reescribirá. Por ejemplo,my-source-bucketSOURCE_OBJECT_NAMEes el nombre codificado en URL del objeto que se volverá a escribir. Por ejemplo,employees.txtDESTINATION_BUCKET_NAMEes el nombre del bucket en el que se reescribirá el objeto. Por ejemplo,my-destination-bucketDESTINATION_OBJECT_NAMEes el nombre codificado en URL del objeto de destino. Por ejemplo,employees-backup.txt
Para quitar todos los contextos de origen sin proporcionar una anulación, usa el parámetro de consulta dropContextGroups=custom en tu solicitud:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME?dropContextGroups=custom"
Para conservar los contextos, omite la propiedad contexts.custom del cuerpo de la solicitud y excluye dropContextGroups=custom en los parámetros de consulta:
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/SOURCE_BUCKET_NAME/o/SOURCE_OBJECT_NAME/rewriteTo/b/DESTINATION_BUCKET_NAME/o/DESTINATION_OBJECT_NAME"
Para obtener información sobre el comportamiento de los contextos durante las operaciones de reescritura, consulta el parámetro de consulta dropContextGroups.
Redactar objetos
El comando gcloud storage objects compose y el método compose de la API de JSON combinan los contextos de los objetos de origen y los adjuntan a los objetos de destino de forma predeterminada. Cloud Storage resuelve los conflictos priorizando los contextos de los objetos fuente que se procesan más tarde. Para obtener más información sobre el comportamiento del contexto del objeto durante una operación de composición, consulta Contextos de objetos compuestos.
Línea de comandos
Para especificar contextos nuevos para el objeto de destino cuando se componen objetos, usa la marca --contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --contexts=KEY=VALUE,...
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene los objetos de origen y en el que se crea el objeto de destino. Por ejemplo,my-bucketSOURCE_OBJECT_1ySOURCE_OBJECT_2son objetos de origen para componer.DESTINATION_OBJECT_NAMEes el nombre del objeto de destino que se creará. Por ejemplo,my-composite-objectKEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentPuedes especificar varios pares clave-valor separados por comas.VALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources.
Para evitar que los contextos de origen se adjunten a objetos compuestos, usa la marca --clear-custom-contexts:
gcloud storage objects compose gs://BUCKET_NAME/SOURCE_OBJECT_1 gs://BUCKET_NAME/SOURCE_OBJECT_2 gs://BUCKET_NAME/DESTINATION_OBJECT_NAME --clear-custom-contexts
Aquí:
BUCKET_NAMEes el nombre del bucket que contiene los objetos de origen y en el que se crea el objeto de destino. Por ejemplo,my-bucketSOURCE_OBJECT_1ySOURCE_OBJECT_2son los objetos de origen que se compondrán.DESTINATION_OBJECT_NAMEes el nombre del objeto de destino que se creará. Por ejemplo,my-composite-object
API de JSON
Para especificar contextos nuevos para el objeto de destino cuando se componen objetos, incluye contextos en la propiedad destination del cuerpo de la solicitud.
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Crea un archivo JSON que contenga el cuerpo de la solicitud:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain", "contexts": { "custom": { "KEY": { "value": "VALUE" } } } } }
Aquí:
SOURCE_OBJECT_1ySOURCE_OBJECT_2son objetos de origen para componer.KEYes la clave de contexto que se adjuntará a un objeto. Por ejemplo,DepartmentVALUEes el valor que se asociará con la clave de contexto. Por ejemplo,Human resources.
Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOSTcompose:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose"
Aquí:
JSON_FILE_NAMEes la ruta de acceso al archivo JSON que incluye el cuerpo de la solicitud.BUCKET_NAMEes el nombre del bucket que contiene los objetos de origen y en el que se creará el objeto de destino. Por ejemplo,my-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino que se creará. Por ejemplo,my-composite-object
Para evitar que los contextos de origen se adjunten a objetos compuestos, usa el parámetro de consulta dropContextGroups=custom en tu solicitud:
Tener la gcloud CLI instalada e inicializada, lo que te permite generar un token de acceso para el encabezado
Authorization.Crea un archivo JSON que contenga el cuerpo de la solicitud:
{ "sourceObjects": [ {"name": "SOURCE_OBJECT_1"}, {"name": "SOURCE_OBJECT_2"} ], "destination": { "contentType": "text/plain" } }
Aquí:
SOURCE_OBJECT_1ySOURCE_OBJECT_2son objetos de origen para componer.
Usa
cURLpara llamar a la API de JSON con una solicitud de objetoPOSTcompose:curl -X POST --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/o/DESTINATION_OBJECT_NAME/compose?dropContextGroups=custom"
Aquí:
JSON_FILE_NAMEes la ruta de acceso al archivo JSON que incluye el cuerpo de la solicitud.BUCKET_NAMEes el nombre del bucket que contiene los objetos de origen y en el que se creará el objeto de destino. Por ejemplo,my-bucketDESTINATION_OBJECT_NAMEes el nombre del objeto de destino que se creará. Por ejemplo,my-composite-object
¿Qué sigue?
- Obtén información sobre las propiedades del contexto del objeto en la documentación de la API de Cloud Storage.