Gli id degli oggetti sono opachi (
pub/..., prv/...). Memorizzali come vengono restituiti, non costruirli né analizzarli mai, e sostituisci l’id memorizzato ogni volta che update() ne restituisce uno nuovo. Vedi Id degli oggetti.Elencare
list() è un async generator che segue il cursore attraverso tutte le pagine. L’ordine non è garantito.
listPage() recupera una pagina. Usalo per la paginazione manuale o per ottenere folders:
Una pagina ha
objects, folders (solo con delimiter) e continuationToken (assente nell’ultima pagina). Ogni oggetto elencato ha id, size, created_at, expires_at, private, url ed etag. Vedi Object List.
Dettagli dell’oggetto
id, size, content_type, etag, created_at, expires_at, private, url, cache_control, content_disposition, original_name, metadata e legacy. Vedi Object Info.
created_at è l’ora dell’ultima modifica nello storage: un aggiornamento che copia l’oggetto (visibilità, scadenza, header) la reimposta.Link di download
- Un oggetto pubblico riceve il suo URL CDN permanente, con
expires_at: null. - Un oggetto privato, o qualsiasi chiamata con
dispositionofilename, riceve un link temporaneo che duraexpiressecondi (fino a 24 ore).
Il risultato ha
url, expires_at, private, size e content_type. Vedi Object Download.
Aggiornare gli oggetti
update() modifica visibilità, scadenza, cache, disposition o metadati di un oggetto o fino a 50. Restituisce sempre un array, un risultato per oggetto, e ogni risultato riporta il proprio esito in ok.
Un risultato riuscito (
ok: true) ha object (l’id che hai inviato), changed, id (l’id dopo la modifica), private, url, expires_at e size. Un risultato fallito (ok: false) ha object e code. Un batch non lancia errori per i fallimenti dei singoli oggetti. Vedi Object Update.
Eliminare
L’eliminazione è immediata e permanente: non c’è un cestino.
Con un singolo id in un array, l’SDK restituisce comunque
{ deleted, not_found, failed }: un oggetto mancante finisce in not_found, e DELETE_FAILED o PREFIX_NOT_ALLOWED finiscono in failed invece di lanciare un errore. Qualsiasi altro errore (autenticazione, rate limit, rete) viene comunque lanciato. Vedi Delete Objects.
Copiare, spostare e rinominare
Entrambe le operazioni vengono eseguite sul server, senza scaricare il file.move(source, destination, options) è copy() con move: true.
Il risultato ha
id, private, url, expires_at, size, source, moved e replaced. Vedi Object Copy.
update(), delete(), copy() e move() sono scritture: hanno un solo tentativo e non vengono mai ripetute. Vedi Politica di retry.
