Crea una copia de un objeto en StorageGRID con la solicitud S3 CopyObject
Puedes usar la solicitud CopyObject de S3 para crear una copia de un objeto que ya está almacenado en S3. Una operación CopyObject es lo mismo que realizar GetObject seguido de PutObject.
Resolver conflictos
Las solicitudes conflictivas de los clientes, como por ejemplo cuando dos clientes escriben en la misma clave, se resuelven según el principio de "la última gana". El momento en que se evalúa el principio de "la última gana" se basa en cuándo el sistema StorageGRID completa una solicitud determinada, y no en cuándo los clientes S3 inician una operación.
Tamaño del objeto
El tamaño máximo recomendado para una sola operación de PutObject es de 5 GiB (5,368,709,120 bytes). Si tienes objetos que superan los 5 GiB, utiliza "${post_edited_translations.segment}" en su lugar.
El tamaño máximo admitido para una sola operación de PutObject es de 5 TiB (5,497,558,138,880 bytes).
|
|
Si has actualizado desde StorageGRID 11.6 o una versión anterior, se activará la alerta «S3 PUT Object size too large» si intentas cargar un objeto que supere los 5 GiB. Si tienes una nueva instalación de StorageGRID 11.7 o 11.8, la alerta no se activará en este caso. Sin embargo, para alinearse con el estándar de AWS S3, las futuras versiones de StorageGRID no admitirán cargas de objetos mayores a 5 GiB. |
Caracteres UTF-8 en los metadatos de usuario
Si una solicitud incluye valores UTF-8 (sin caracteres de escape) en el nombre de la clave o en el valor de los metadatos definidos por el usuario, el comportamiento de StorageGRID es indefinido.
StorageGRID no analiza ni interpreta los caracteres UTF-8 escapados incluidos en el nombre o el valor de los metadatos definidos por el usuario. Los caracteres UTF-8 escapados se tratan como caracteres ASCII:
-
Las solicitudes se procesan correctamente si los metadatos definidos por el usuario incluyen caracteres UTF-8 escapados.
-
StorageGRID no devuelve la cabecera
x-amz-missing-metasi el valor interpretado del nombre o del valor de la clave incluye caracteres no imprimibles.
Encabezados de solicitud compatibles
Se admiten los siguientes encabezados de solicitud:
-
Content-Type -
x-amz-copy-source -
x-amz-copy-source-if-match -
x-amz-copy-source-if-none-match -
x-amz-copy-source-if-unmodified-since -
x-amz-copy-source-if-modified-since -
x-amz-meta-, seguido de un par nombre-valor que contiene metadatos definidos por el usuario -
x-amz-metadata-directive: el valor predeterminado esCOPY, lo que te permite copiar el objeto y los metadatos asociados.Puedes especificar
REPLACEpara sobrescribir los metadatos existentes al copiar el objeto o para actualizar los metadatos del objeto. -
x-amz-storage-class -
x-amz-tagging-directive: El valor por defecto esCOPY, lo que te permite copiar el objeto y todas las etiquetas.Puedes especificar
REPLACEpara sobrescribir las etiquetas existentes al copiar el objeto o para actualizarlas. -
Encabezados de solicitud de S3 Object Lock:
-
x-amz-object-lock-mode -
x-amz-object-lock-retain-until-date -
x-amz-object-lock-legal-holdSi realizas una solicitud sin estas cabeceras, se utilizará la configuración de retención predeterminada del bucket para calcular el modo de versión del objeto y la fecha de retención hasta. Consulta "Utiliza la API de REST de S3 para configurar S3 Object Lock".
-
-
Encabezados de solicitud SSE:
-
x-amz-copy-source-server-side-encryption-customer-algorithm -
x-amz-copy-source-server-side-encryption-customer-key -
x-amz-copy-source-server-side-encryption-customer-key-MD5 -
x-amz-server-side-encryption -
x-amz-server-side-encryption-customer-key-MD5 -
x-amz-server-side-encryption-customer-key -
x-amz-server-side-encryption-customer-algorithm
-
Encabezados de solicitud no compatibles
No se admiten los siguientes encabezados de solicitud:
-
Cache-Control -
Content-Disposition -
Content-Encoding -
Content-Language -
Expires -
If-MatchEl
If-Match headeres aceptado pero no funciona. -
If-None-MatchEl
If-None-Match headeres aceptado pero no funciona. -
x-amz-checksum-algorithmAl copiar un objeto, si el objeto de origen tiene una suma de comprobación, StorageGRID no copia ese valor de suma de comprobación al nuevo objeto. Este comportamiento se aplica independientemente de si intentas usar
x-amz-checksum-algorithmen la solicitud del objeto. -
x-amz-website-redirect-location
Opciones de clase de almacenamiento
Se admite el encabezado de solicitud x-amz-storage-class y afecta cuántas copias de objetos crea StorageGRID si la regla de ILM correspondiente utiliza Dual commit o Balanced "opción de ingesta".
-
STANDARD(Por defecto) Especifica una operación de ingesta con doble confirmación cuando la regla de ILM utiliza la opción de doble confirmación o cuando la opción equilibrada recurre a la creación de copias provisionales.
-
REDUCED_REDUNDANCYEspecifica una operación de ingesta de confirmación única cuando la regla ILM utiliza la opción de confirmación doble o cuando la opción equilibrada recurre a la creación de copias provisionales.
Si estás ingiriendo un objeto en un bucket con S3 Object Lock activado, la opción REDUCED_REDUNDANCYse ignora. Si estás ingiriendo un objeto en un bucket Compliant heredado, la opciónREDUCED_REDUNDANCYdevuelve un error. StorageGRID siempre realizará una ingesta con doble confirmación para garantizar que se cumplan los requisitos de cumplimiento.
Uso de x-amz-copy-source en CopyObject
Si el bucket y la clave de origen, especificados en la cabecera x-amz-copy-source, son diferentes del bucket y la clave de destino, se escribe una copia de los datos del objeto de origen en el destino.
Si la fuente y el destino coinciden, y el encabezado x-amz-metadata-directive se especifica como REPLACE, los metadatos del objeto se actualizan con los valores de metadatos proporcionados en la solicitud. En este caso, StorageGRID no vuelve a incorporar el objeto. Esto tiene dos consecuencias importantes:
-
No puedes usar CopyObject para cifrar un objeto existente en su lugar ni para cambiar el cifrado de un objeto existente en su lugar. Si proporcionas el encabezado
x-amz-server-side-encryptiono el encabezadox-amz-server-side-encryption-customer-algorithm, StorageGRID rechaza la solicitud y devuelveXNotImplemented. -
No se utiliza la opción de Ingest Behavior especificada en la regla ILM correspondiente. Cualquier cambio en la ubicación de los objetos que se derive de la actualización se realiza cuando ILM se vuelve a evaluar mediante los procesos normales de ILM en segundo plano.
Esto significa que, si la regla de ILM utiliza la opción Strict para el comportamiento de ingesta, no se lleva a cabo ninguna acción si no es posible realizar las ubicaciones de objetos requeridas (por ejemplo, porque una ubicación recién requerida no está disponible). El objeto actualizado conserva su ubicación actual hasta que sea posible la ubicación requerida.
Encabezados de solicitud para el cifrado del lado del servidor
Si utilizas "usar el cifrado del lado del servidor", los encabezados de solicitud que proporciones dependen de si el objeto de origen está cifrado y de si planeas cifrar el objeto de destino.
-
Si el objeto de origen está cifrado con una clave proporcionada por el cliente (SSE-C), debes incluir los siguientes tres encabezados en la solicitud CopyObject, para que el objeto pueda descifrarse y luego copiarse:
-
x-amz-copy-source-server-side-encryption-customer-algorithm: indicaAES256. -
x-amz-copy-source-server-side-encryption-customer-key: especifica la clave de cifrado que proporcionaste cuando creaste el objeto de origen. -
x-amz-copy-source-server-side-encryption-customer-key-MD5: Indica el resumen MD5 que proporcionaste cuando creaste el objeto de origen.
-
-
${post_edited_translations.segment}
-
x-amz-server-side-encryption-customer-algorithm: IndicaAES256. -
x-amz-server-side-encryption-customer-key: Especifica una nueva clave de cifrado para el objeto de destino. -
x-amz-server-side-encryption-customer-key-MD5: Indica el resumen MD5 de la nueva clave de cifrado.
Las claves de cifrado que facilites nunca se almacenan. Si pierdes una clave de cifrado, pierdes el objeto correspondiente. Antes de usar claves proporcionadas por el cliente para proteger los datos de los objetos, revisa las consideraciones para "utilizando el cifrado del lado del servidor". -
-
Si deseas cifrar el objeto de destino (la copia) con una clave única gestionada por StorageGRID (SSE), incluye este encabezado en la solicitud CopyObject:
-
x-amz-server-side-encryptionEl server-side-encryptionvalor del objeto no se puede actualizar. En su lugar, haz una copia con un nuevoserver-side-encryptionvalor utilizandox-amz-metadata-directive:REPLACE.
-
Control de versiones
Si el bucket de origen está versionado, puedes usar el encabezado x-amz-copy-source para copiar la última versión de un objeto. Para copiar una versión específica de un objeto, debes especificar explícitamente la versión que quieres copiar usando el subrecurso versionId. Si el bucket de destino está versionado, la versión generada se devuelve en el encabezado de respuesta x-amz-version-id. Si el versionado está suspendido para el bucket de destino, entonces x-amz-version-id devuelve un valor "null".