Skip to main content
O Blob Storage tem um gateway compatível com S3 que funciona com qualquer cliente S3. O SDK fornece as credenciais dele, ou um S3Client pronto do AWS SDK.
Ambos os métodos precisam de uma chave de API. Um cliente criado com um token de upload recebe 403 UPLOAD_TOKEN_NOT_ALLOWED, e uma chave em formato antigo recebe LEGACY_API_KEY.

s3()

s3() retorna um S3Client do @aws-sdk/client-s3, já configurado com o endpoint, a região e as credenciais do gateway, e com forcePathStyle: true. @aws-sdk/client-s3 é uma peer dependency opcional: instale-a apenas se você usar s3(). Ela é carregada sob demanda, então o SDK em si continua sem dependências.

Buckets

Veja Buckets e Chaves para saber como as chaves S3 correspondem aos objetos, e Operações suportadas para o que o gateway aceita.

s3Credentials()

Para outros clientes S3 (aws-cli, rclone, boto3, …), s3Credentials() retorna o par de chaves bruto:
Use endereçamento path-style com qualquer outro cliente.
secret_access_key dá o mesmo acesso que a chave de API. Mantenha-a no servidor e armazene-a como a própria chave. Revogar ou rotacionar a chave de API também invalida o par.

Cache

O par é determinístico por chave de API, então o SDK o armazena em cache por instância do cliente: s3Credentials() e s3() chamam a API uma vez, e as chamadas seguintes reutilizam o resultado. Uma chamada que falha não é armazenada em cache, então a próxima chamada tenta novamente.
A rota de credenciais aceita apenas 10 requisições por hora. Crie um único cliente SquareCloudBlob e reutilize-o, em vez de criar um por requisição.
Referência da API: Credenciais S3.