Crear un bucket
- Console
- API
- CLI
- Go
Vaya a Storage → Buckets y elija Create Bucket. Bucket Name es lo único que tiene que rellenar; Versioning, Default
encryption, Deletion protection y Tags están en el mismo formulario.Estos extras se aplican como llamadas separadas una vez que el bucket existe, por lo que el bucket se crea incluso si uno de ellos falla, y la consola le dice cuál lo hizo.
3–63 characters
requerido
Letras minúsculas, dígitos y guiones. Debe comenzar y terminar con una letra o un dígito, no debe contener un guion doble (
--) y no debe tener la forma de una dirección IP.buckets de su organización; agotarla también es un 409 en crear.
El bloqueo de objetos tiene que ser decidido aquí
PUT /v1/buckets/{bucket}/object-lock actualiza la regla de retención predeterminada en un bucket que ya tiene Object Lock habilitado. Contra un bucket que no lo hace, es un 409 — object lock must be enabled at bucket creation.
Activar Object Lock es solo para API. Tiene que ser ejecutado en la llamada que crea el bucket, y el formulario Create Bucket de la consola no lo envía — el bucket se crea sin Object Lock, y la configuración de seguimiento se rechaza con ese mismo
409. Cree el bucket a través de la API cuando necesite Object Lock.En un depósito que ya lo tiene, la consola edita la regla: la tarjeta Object Lock en la pestaña Settings del depósito lleva la Default retention rule, con un Mode y un Retention period.Apuntando un cliente de S3 a él
Establezca un punto final personalizado y firme con su clave de acceso de Basaltic. Nada más sobre el cliente cambia.Credenciales
Credenciales
Las mismas teclas de acceso que usas en todas partes. La clave de larga duración de una cuenta de servicio no necesita nada adicional; las credenciales temporales de STS (una sesión de rol o una sesión de usuario) también deben llevar el token de sesión, y se rechazan sin él.Vea authentication para obtener cada uno.
Estilo de dirección
Estilo de dirección
Ambos estilos funcionan. Virtual-hosted (
https://my-app-assets.objects.sa-saopaulo-1.basaltic.cloud/key) es lo que la mayoría de los SDKs predeterminan; path-style (https://objects.sa-saopaulo-1.basaltic.cloud/my-app-assets/key) está disponible a través de la opción de estilo de dirección de su cliente.La cadena de la región
La cadena de la región
Establezca
region_name al código de región Basaltic. El valor no se compara con la región que sirve la solicitud — solo tiene que coincidir con la que su cliente firmó — por lo que una herramienta con conexión a us-east-1 aún funciona. GetBucketLocation informa la región real.URLs sesgadas y prefirmadas
URLs sesgadas y prefirmadas
Una solicitud firmada debe estar dentro de los 15 minutos del reloj del servidor, o se rechaza como demasiado sesgada. Las URL prefirmadas son compatibles con una caducidad entre 1 segundo y 7 días, y una URL con fecha futura más allá de la tolerancia de sesgo se rechaza en lugar de volverse válida más tarde.
Qué sirve el punto final de S3
El punto final se verifica con un SDK de AWS real en lugar de una especificación propia: si boto3 puede hacerlo y obtener los códigos de error de S3, funciona. Lo que se enruta hoy:Buckets
ListBuckets, CreateBucket, HeadBucket, DeleteBucket, GetBucketLocation y los subrecursos
?policy, ?cors, ?lifecycle, ?versioning, ?encryption, ?tagging, ?object-lock y ?acl.Objetos
PutObject, GetObject (incluidas las solicitudes de rango), HeadObject, DeleteObject, DeleteObjects, CopyObject, ListObjects, ListObjectsV2, ListObjectVersions y los subrecursos
?tagging, ?retention, ?legal-hold y ?acl.Multipart
Crear carga de múltiples partes, carga de parte, copia de parte de carga, lista de partes, lista de cargas de múltiples partes, completa carga de múltiples partes, cancelar carga de múltiples partes.
Firma de carga útil
Cargas útiles firmadas,
UNSIGNED-PAYLOAD, y firmadas aws-chunked cargas de transmisión. El cuerpo se vuelve a hash a medida que se transmite, por lo que un cuerpo que no coincide con lo que se firmó se rechaza a mitad de vuelo.NotImplemented. Las solicitudes de comprobación previa OPTIONS se responden sin una firma, porque los navegadores nunca las firman.
Eliminar un bucket
DELETE /v1/buckets/{bucket} hace dos cosas muy diferentes dependiendo de si la protección de eliminación está activada. La protección está desactivada de forma predeterminada para la paridad de S3: a diferencia de los secretos y KMS, los depósitos no protegidos no tienen ventana de recuperación.
- Protección desactivada (predeterminado)
- Protección en el trabajo
El bucket debe estar vacío. Cualquier objeto, versión o carga de varias partes en curso que quede hace que sea un
409 BucketNotEmpty. Un depósito vacío se elimina inmediatamente y se libera la ranura de cuota.- Console
- API
- CLI
- Go
La tarjeta Deletion protection en la pestaña Settings del depósito es un interruptor junto a Recovery window (days). Save aplica ambos.
recovery_window_days acepta números enteros de 1–30. Omitir cada campo de ventana utiliza 7 días. Los valores no válidos devuelven 400, incluso cuando se desactiva la protección.
Nota de la versión: campos de recuperación
Las respuestas del depósito exponenrecovery_window_days, scheduled_purge_at y deleted_at nullable. Protegido DELETE devuelve 200 con scheduled_purge_at; inmediato DELETE devuelve 204.
Cambio de comportamiento de ruptura: ventanas no válidas devuelven 400
El servicio previamente silenciosamente sujetaba las ventanas: los valores por debajo de 1 seleccionaban 7 días, y los valores por encima de 30 seleccionaban 30 días. Ahora los rechaza con400 en su lugar. Por ejemplo, si se solicitan 60 días, se produce un error; ya no programa una purga después de solo 30 días. El cero explícito también es inválido; omita los campos de la ventana para seleccionar el valor predeterminado de 7 días. Los días fraccionarios no son válidos. Actualizar los llamadores que dependían de la sujeción por separado de la adopción de los nuevos nombres de campo.
Durante una implementación continua, las instancias de servicio antiguas pueden seguir aplicando su antiguo comportamiento de sujeción; el rechazo es universal una vez que se actualizan todas las instancias.
