Skip to main content

Objetos y sus límites

Estos son los propios números de S3, y se aplican a los valores de S3:
El límite de carga única se compara con el tamaño que declara antes de leer cualquier carga útil. Un Content-Length de gran tamaño se rechaza con EntityTooLarge (413 en la API de almacenamiento) sin transferir un byte, y un cuerpo que se transmite más allá del límite también se corta.
El límite de 5 MiB se aplica a todas las partes excepto la última nombrada al completarse, y se comprueba al completarse, no cuando se carga la parte. Una lista de partes cuya parte no final es corta falla con EntityTooSmall después de que los bytes ya están en etapa. Las subidas que comienzas y nunca terminas mantienen sus partes preparadas hasta que algo las elimina. abort_incomplete_multipart_upload Regla del ciclo de vida en lugar de confiar en recordar.

Declarar la longitud de la subida

Las cargas de objetos y las cargas de partes múltiples deben prometer su longitud de carga útil. Enviar Content-Length en la API de almacenamiento y en las cargas ordinarias de S3. Las cargas vacías siguen siendo compatibles con longitud 0; las copias del lado del servidor no necesitan una longitud de cuerpo de carga. Para los modos de transmisión S3 aws-chunked compatibles, envíe X-Amz-Decoded-Content-Length: cuenta los bytes de carga útil, excluyendo el encuadre y los tráilers. La longitud de cable codificada no puede reemplazarlo. Al agregar este encabezado a una solicitud fragmentada sin contenido, no se convierte en una carga de transmisión de AWS. Las cargas sin una longitud de carga declarada reciben HTTP 411 antes del almacenamiento: MISSING_CONTENT_LENGTH en la API de almacenamiento, o MissingContentLength en S3. Un cuerpo que termina corto de su longitud declarada es rechazado; un reintento de parte rechazada deja intacta la parte previamente almacenada. Si produce un tubo, generador o archivo de tamaño desconocido, guárdelo en un archivo y envíe su longitud medida. Para flujos más grandes, almacenar en búfer cada parte multiparte y declarar la longitud de esa parte. No necesitas saber la longitud completa del objeto por adelantado. Tenga en cuenta los límites de tamaño de varias partes anteriores. El SDK de Go determina la longitud restante de los cuerpos buscables, incluidos los archivos, a partir de la versión 0.3.2. Un lector arbitrario todavía necesita una longitud conocida o búfer. Una ETag por sí sola no puede decir si un productor entregó todos los bytes que pretendía enviar.

Clases de almacenamiento

Dos clases, y nombran niveles de dispositivos en lugar de patrones de acceso: Mantienen la ortografía mayúscula de S3 porque el vocabulario es de S3. Establezca una clase por objeto con x-amz-storage-class en la carga, o mueva objetos entre clases con una transición de ciclo de vida. Las dos clases facturan por separado, por lo que la etiqueta que lleva un objeto decide en qué contador y a qué precio aterrizan sus bytes. Una clase no soportada — STANDARD_IA, GLACIER, cualquier otra cosa que S3 defina — es rechazada en lugar de ser almacenada silenciosamente como STANDARD.

Trabajar con objetos a través de la API de almacenamiento

No necesita un cliente de S3. La API de almacenamiento expone el mismo plano de objetos en /v1/buckets/{bucket}/objects, autenticado con tus credenciales de Basaltic ordinarias exactamente como cualquier otra llamada a esta API, útil para un servicio que ya las tiene y no debería llevar un SDK de S3 también:
La pestaña Objects de un bucket es un explorador de archivos sobre las mismas rutas. Upload abre la página Upload objects, donde puedes establecer un Folder prefix, elegir una Storage class (Standard o Cold) y agregar Files. New folder crea un prefijo, y al seleccionar filas obtienes Delete selected, que emite una eliminación por clave en lugar de una solicitud masiva — ver la nota a continuación.Al abrir un objeto, se muestran Download y Delete, una pestaña Versions y una pestaña Properties con sus Tags junto con los controles de retención.
Los sub-recursos por objeto se utilizan como parámetros de consulta en estas rutas — ?tagging, ?retention, ?legal-hold — y los mismos encabezados X-Amz-* se aplican en la carga para la clase de almacenamiento, el cifrado y la configuración de bloqueo de objetos. delimiter le da la semántica de carpeta habitual a través de common_prefixes, y max_keys está limitado a 1000 por página.
La eliminación masiva (POST ?delete) y la copia del lado del servidor (x-amz-copy-source) son funciones de punto final de S3. A través de la API de almacenamiento, elimine objetos uno a la vez.