Os ids de objetos são opacos (
pub/..., prv/...). Armazene-os como retornados, nunca os monte nem os interprete, e substitua o id armazenado sempre que update() retornar um novo. Veja Ids de objetos.Listagem
list() é um async generator que segue o cursor por todas as páginas. A ordem não é garantida.
listPage() busca uma página. Use-o para paginação manual ou para obter folders:
Uma página tem
objects, folders (apenas com delimiter) e continuationToken (ausente na última página). Cada objeto listado tem id, size, created_at, expires_at, private, url e etag. Veja Listar objetos.
Detalhes do objeto
id, size, content_type, etag, created_at, expires_at, private, url, cache_control, content_disposition, original_name, metadata e legacy. Veja Informações do objeto.
created_at é o horário da última modificação no armazenamento: uma atualização que copia o objeto (visibilidade, expiração, headers) o redefine.Links de download
- Um objeto público recebe sua URL permanente da CDN, com
expires_at: null. - Um objeto privado, ou qualquer chamada com
dispositionoufilename, recebe um link temporário que duraexpiressegundos (até 24 horas).
O resultado tem
url, expires_at, private, size e content_type. Veja Download do objeto.
Atualizando objetos
update() altera a visibilidade, a expiração, o cache, a disposition ou os metadados de um objeto ou até 50. Ele sempre retorna um array, um resultado por objeto, e cada resultado informa seu próprio sucesso em ok.
Um resultado bem-sucedido (
ok: true) tem object (o id que você enviou), changed, id (o id após a alteração), private, url, expires_at e size. Um resultado com falha (ok: false) tem object e code. Um lote não lança erro por falhas individuais de objetos. Veja Atualizar objeto.
Excluindo
A exclusão é imediata e permanente: não há lixeira.
Com um único id dentro de um array, o SDK ainda retorna
{ deleted, not_found, failed }: um objeto inexistente vai para not_found, e DELETE_FAILED ou PREFIX_NOT_ALLOWED vão para failed em vez de lançar erro. Qualquer outro erro (autenticação, rate limit, rede) continua sendo lançado. Veja Excluir objetos.
Copiando, movendo e renomeando
Ambos rodam no servidor, sem baixar o arquivo.move(source, destination, options) é copy() com move: true.
O resultado tem
id, private, url, expires_at, size, source, moved e replaced. Veja Copiar objeto.
update(), delete(), copy() e move() são escritas: elas têm uma única tentativa e nunca são repetidas. Veja Política de novas tentativas.
