Armazene e veicule arquivos com o JavaScript SDK
Os fluxos diários de aura.storage, com as regras de acesso observadas em uma pilha em execução.
1. Baldes
Um bucket agrupa arquivos e decide se eles são públicos. A criação e exclusão de buckets precisam de uma chave service_role. Listá-los requer um usuário conectado ou uma chave service_role; a chave pública sozinha obtém 403.
Um bucket também aceita fileSizeLimit (em bytes) e allowedMimeTypes. Um upload muito grande retorna 413 e um tipo que não é permitido retorna 400.
2. Carregar, baixar, listar, remover
O que esperar:
- Carregar um caminho existente retorna
409a menos que você passeupsert: true. - O upload precisa de um usuário conectado ou de uma chave
service_role. Somente a chave pública obtém403, mesmo para um bucket público. - Um caminho com
..é recusado com400. - Os caminhos são compartilhados dentro de um bucket. Se outro usuário já tiver o caminho, você obterá
409. Coloque os arquivos de cada usuário em sua própria pasta, como${user.id}/….
3. Compartilhe um arquivo
Ambos os links foram buscados sem nenhuma chave e retornaram o arquivo. Um link assinado para de funcionar após expires_in segundos. Para permitir que um navegador faça upload sem uma chave, um servidor cria createSignedUploadUrl(path) (uma chamada service_role).
4. Quem pode fazer o quê
| Ação | Chave pública | Usuário conectado | service_role |
|---|---|---|---|
| Ler um arquivo em um bucket público | sim | sim | sim |
| Ler e listar um arquivo em um bucket privado | não | seu dono apenas | sim |
| Carregar | não | sim | sim |
| Substituir ou remover um arquivo | não | seu dono apenas | sim |
| Listar intervalos | não | sim | sim |
| Criar e excluir buckets | não | não | sim |
O proprietário é o usuário que carregou o arquivo. Em uma execução real, um segundo usuário não poderia listar, baixar ou remover o arquivo do primeiro usuário em um bucket privado e também não poderia substituí-lo.
5. Mova e copie de um servidor
O redimensionamento da imagem é descrito em a referência de armazenamento.