Agrega un objeto a un bucket en StorageGRID con la solicitud S3 PutObject
Puedes usar la solicitud PutObject de S3 para añadir un objeto a un bucket.
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. |
${post_edited_translations.segment}
Amazon S3 limita el tamaño de los metadatos definidos por el usuario dentro de cada cabecera de solicitud PUT a 2 KB. StorageGRID limita los metadatos del usuario a 24 KiB. El tamaño de los metadatos definidos por el usuario se mide sumando el número de bytes en la codificación UTF-8 de cada clave y valor.
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:
-
PutObject, CopyObject, GetObject y HeadObject 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.
Límites de las etiquetas de objetos
Puedes añadir etiquetas a los objetos nuevos al subirlos, o puedes añadirlas a objetos ya existentes. Tanto StorageGRID como Amazon S3 admiten hasta 10 etiquetas por cada objeto. Las etiquetas asociadas a un objeto deben tener claves de etiqueta únicas. Una clave de etiqueta puede tener hasta 128 caracteres Unicode y los valores de las etiquetas pueden tener hasta 256 caracteres Unicode. Las claves y los valores distinguen mayúsculas de minúsculas.
Propiedad de los objetos
En StorageGRID, todos los objetos son propiedad de la cuenta del propietario del bucket, incluidos los objetos creados por una cuenta que no sea la del propietario o por un usuario anónimo.
Encabezados de solicitud compatibles
Se admiten los siguientes encabezados de solicitud:
-
Cache-Control -
Content-Disposition -
Content-EncodingCuando especificas
aws-chunkedparaContent-EncodingStorageGRID no verifica los siguientes elementos:-
StorageGRID no verifica el
chunk-signaturecon los datos del fragmento. -
StorageGRID no verifica el valor que proporcionas para
x-amz-decoded-content-lengthcon el objeto.
-
-
Content-Language -
Content-Length -
Content-MD5 -
Content-Type -
Expires -
Transfer-EncodingSe admite la codificación de transferencia fragmentada si
aws-chunkedtambién se utiliza la firma de la carga útil. -
x-amz-checksum-sha256 -
x-amz-meta-, seguido de un par nombre-valor que contiene metadatos definidos por el usuario.Al especificar el par nombre-valor para los metadatos definidos por el usuario, utiliza este formato general:
x-amz-meta-name: value
Si deseas utilizar la opción Hora de creación definida por el usuario como hora de referencia para una regla de ILM, debes utilizar
creation-timecomo nombre de los metadatos que registran cuándo se creó el objeto. Por ejemplo:x-amz-meta-creation-time: 1443399726
El valor de
creation-timese calcula en segundos desde el 1 de enero de 1970.Una regla de ILM no puede usar una hora de creación definida por el usuario para la hora de referencia y la opción de ingesta Balanced o Strict al mismo tiempo. Se devuelve un error al crear la regla de ILM. -
x-amz-tagging -
${post_edited_translations.segment}
-
x-amz-object-lock-mode -
x-amz-object-lock-retain-until-date -
x-amz-object-lock-legal-holdSi haces una solicitud sin estas cabeceras, se usa 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-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:
-
If-MatchEl
If-Match headeres aceptado pero no funciona. -
If-None-MatchEl
If-None-Match headeres aceptado pero no funciona. -
x-amz-acl -
x-amz-sdk-checksum-algorithm -
x-amz-trailer -
x-amz-website-redirect-locationLa
x-amz-website-redirect-locationcabecera devuelveXNotImplemented.
Opciones de clase de almacenamiento
Se admite el encabezado de solicitud x-amz-storage-class. El valor enviado para x-amz-storage-class afecta cómo StorageGRID protege los datos del objeto durante la ingesta y no cuántas copias persistentes del objeto se almacenan en el sistema StorageGRID (lo cual lo determina ILM).
Si la regla de ILM que coincide con un objeto ingerido utiliza la opción de ingesta Strict, la cabecera x-amz-storage-class no tiene efecto.
Se pueden usar los siguientes valores para x-amz-storage-class:
-
STANDARD(Por defecto)-
Dual commit: Si la regla ILM especifica la opción Dual commit para el comportamiento de ingesta, tan pronto como se ingiere un objeto, se crea una segunda copia de ese objeto y se distribuye a un Storage Node diferente (dual commit). Cuando se evalúa el ILM, StorageGRID determina si estas copias provisionales iniciales cumplen las instrucciones de ubicación en la regla. Si no lo hacen, puede que sea necesario crear nuevas copias del objeto en ubicaciones diferentes y eliminar las copias provisionales iniciales.
-
Equilibrado: Si la regla de ILM especifica la opción Balanced y StorageGRID no puede crear de inmediato todas las copias especificadas en la regla, StorageGRID crea dos copias provisionales en distintos Storage Nodes.
Si StorageGRID puede crear inmediatamente todas las copias de objetos especificadas en la regla de ILM (colocación sincrónica), el encabezado
x-amz-storage-classno tiene ningún efecto.
-
-
REDUCED_REDUNDANCY-
${post_edited_translations.segment}
-
Equilibrado: Si la regla ILM especifica la opción Equilibrado, StorageGRID crea una única copia provisional solo si el sistema no puede crear inmediatamente todas las copias especificadas en la regla. Si StorageGRID puede realizar una colocación sincrónica, este encabezado no tiene efecto. La
REDUCED_REDUNDANCYopción se usa mejor cuando la regla de ILM que coincide con el objeto crea una sola copia replicada. En este caso, usarREDUCED_REDUNDANCYelimina la creación y eliminación innecesarias de una copia adicional del objeto en cada operación de ingesta.
No se recomienda utilizar la opción
REDUCED_REDUNDANCYen otras circunstancias.REDUCED_REDUNDANCYAumenta el riesgo de pérdida de datos de objetos durante la ingesta. Por ejemplo, podrías perder datos si la única copia se almacena inicialmente en un Storage Node que falla antes de que pueda ocurrir la evaluación de ILM. -
|
|
Disponer de una única copia replicada para cualquier periodo de tiempo pone los datos en riesgo de pérdida permanente. Si solo existe una copia replicada de un objeto, ese objeto se pierde si un Storage Node falla o tiene un error significativo. También pierdes temporalmente el acceso al objeto durante procedimientos de mantenimiento como las actualizaciones. |
Especificar REDUCED_REDUNDANCY solo afecta al número de copias que se crean cuando un objeto se incorpora por primera vez. No afecta al número de copias del objeto que se crean cuando el objeto es evaluado por las políticas de ILM activas, ni da lugar a que los datos se almacenen con niveles de redundancia más bajos en el sistema StorageGRID.
|
|
Si estás ingiriendo un objeto en un bucket con S3 Object Lock activado, la opción REDUCED_REDUNDANCY se ignora. Si estás ingiriendo un objeto en un bucket Compliant heredado, la opción REDUCED_REDUNDANCY devuelve un error. StorageGRID siempre realizará una ingesta con doble confirmación para garantizar que se cumplan los requisitos de cumplimiento.
|
Encabezados de solicitud para el cifrado del lado del servidor
Puedes utilizar los siguientes encabezados de solicitud para cifrar un objeto mediante el cifrado del lado del servidor. Las opciones SSE y SSE-C son mutuamente excluyentes.
-
SSE: Utiliza el siguiente encabezado si deseas cifrar el objeto con una clave única gestionada por StorageGRID.
-
x-amz-server-side-encryptionCuando la cabecera
x-amz-server-side-encryptionno se incluye en la solicitud PutObject, se omite "Configuración de cifrado de objetos almacenados" a nivel de grid de la respuesta de PutObject.
-
-
SSE-C: Utiliza estos tres encabezados si deseas cifrar el objeto con una clave única que tú mismo proporciones y gestiones.
-
x-amz-server-side-encryption-customer-algorithm: IndicaAES256. -
x-amz-server-side-encryption-customer-key: Indica tu clave de cifrado para el nuevo objeto. -
x-amz-server-side-encryption-customer-key-MD5: indica el resumen MD5 de la clave de cifrado del nuevo objeto.
-
|
|
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 un objeto está cifrado con SSE o SSE-C, se ignoran todas las configuraciones de cifrado a nivel de depósito o de grid. |
Control de versiones
Si se ha habilitado el control de versiones para un bucket, se genera automáticamente un versionId único para la versión del objeto que se va a almacenar. Este versionId también se devuelve en la respuesta mediante el encabezado de respuesta x-amz-version-id.
Si se suspende el control de versiones, la versión del objeto se almacena con un null versionId y si ya existe una versión null, se sobrescribirá.
Cálculos de la firma para el encabezado «Authorization»
Al usar la cabecera Authorization para autenticar solicitudes, StorageGRID se diferencia de AWS de las siguientes formas:
-
StorageGRID no requiere que los encabezados
hostse incluyan dentro deCanonicalHeaders. -
StorageGRID no requiere que se incluya
Content-Typedentro deCanonicalHeaders. -
StorageGRID no requiere que
x-amz-*`las cabeceras se incluyan dentro de `CanonicalHeaders.
|
|
Como buena práctica general, incluye siempre estos encabezados dentro de CanonicalHeaders para garantizar que se verifiquen; sin embargo, si los excluyes, StorageGRID no devuelve un error.
|
Para más detalles, consulta "${post_edited_translations.segment}".