Skip to main content

put(file, options)

put() carica un file e restituisce il nuovo oggetto.

Input

L’estensione dell’oggetto deriva da filename, poi dal basename del percorso o dal nome del File. I byte e un semplice Blob non hanno nome, quindi passa filename (ad esempio "data.json") quando li carichi.
In Node.js, un percorso che non può essere aperto lancia un semplice Error (Cannot open file: <path>, con l’errore originale in cause). In un browser, passare un percorso fallisce prima, con l’errore dell’importazione di node:fs. Usa invece un File proveniente da un <input type="file">.

Opzioni

Vedi Object Post per tutte le regole lato server.

Risultato

Upload semplici e multipart

put() sceglie il flusso di upload in base alla dimensione del file: Ogni file deve avere almeno 512 byte; i file più piccoli falliscono con FILE_TOO_SMALL. Un max_size di una regola o di un token di upload, o la tua quota di storage, possono abbassare il limite di 10 GiB.

Come funziona un upload multipart

  1. L’SDK avvia l’upload e il server risponde con i limiti delle parti (max_size, max_parts).
  2. Il file viene diviso in parti di min(max_size, max(16 MiB, ceil(size / max_parts))) byte. Una parte è di solito di 16 MiB o più, ma è più piccola quando il max_size del server è più piccolo.
  3. Le parti vengono inviate 6 alla volta, il limite del server per le parti in transito. Una parte fallita viene ritentata entro maxRetries.
  4. Quando tutte le parti sono arrivate, l’SDK completa l’upload.
Se una parte fallisce definitivamente, o il completamento fallisce, l’SDK attende le parti ancora in transito e poi annulla l’upload, così nessuna parte arriva dopo l’annullamento. Viene lanciato l’errore originale. Non c’è ripresa: chiama di nuovo put().
Un upload multipart non verifica overwrite: false né checksum_sha256. Sostituisce sempre un oggetto esistente con lo stesso nome.
Un account può avere al massimo 32 upload multipart aperti (condivisi con il gateway S3); uno in più fallisce con TOO_MANY_OPEN_UPLOADS. Poiché le parti vengono inviate 6 alla volta per account, esegui un solo upload di grandi dimensioni alla volta.

Upload dal browser

Non inviare mai la chiave API a un browser. Invece, il tuo server genera un token di upload a breve durata e il browser carica con quello.
Un client creato con un token può solo chiamare put(), inclusi gli upload multipart. Qualsiasi altro metodo fallisce con 403 UPLOAD_TOKEN_NOT_ALLOWED.

uploadTokens.create(options)

Il token vincola ogni opzione con cui è stato generato. Restituisce { token, expires_at, max_uses }. Vedi Upload Tokens per le regole lato server.
uploadTokens.create() è una scrittura e ha un solo tentativo: non viene mai ripetuto.