Skip to main content
Blob Storage tiene un gateway compatible con S3 que funciona con cualquier cliente S3. El SDK te da sus credenciales, o un S3Client del AWS SDK ya preparado.
Ambos métodos necesitan una clave de API. Un cliente creado con un token de subida recibe 403 UPLOAD_TOKEN_NOT_ALLOWED, y una clave en un formato antiguo recibe LEGACY_API_KEY.

s3()

s3() devuelve un S3Client de @aws-sdk/client-s3, ya configurado con el endpoint, la región y las credenciales del gateway, y con forcePathStyle: true. @aws-sdk/client-s3 es una peer dependency opcional: instálala solo si usas s3(). Se carga de forma diferida, así que el propio SDK sigue sin dependencias.

Buckets

Consulta Buckets y Keys para ver cómo se corresponden las keys de S3 con los objetos, y Operaciones compatibles para ver qué acepta el gateway.

s3Credentials()

Para otros clientes S3 (aws-cli, rclone, boto3, …), s3Credentials() devuelve el par de claves sin procesar:
Usa direccionamiento de tipo path (path-style) con cualquier otro cliente.
secret_access_key da el mismo acceso que la clave de API. Mantenlo en el servidor y guárdalo igual que la propia clave. Revocar o rotar la clave de API también invalida el par.

Caché

El par es determinista para cada clave de API, así que el SDK lo guarda en caché por instancia de cliente: s3Credentials() y s3() llaman a la API una sola vez, y las llamadas posteriores reutilizan el resultado. Una llamada fallida no se guarda en caché, así que la siguiente vuelve a intentarlo.
La ruta de credenciales solo acepta 10 peticiones por hora. Crea un único cliente SquareCloudBlob y reutilízalo en lugar de crear uno por petición.
Referencia de la API: S3 Credentials.