Riprendi un caricamento API interrotto

Riprendi caricamenti API multipart dai numeri di parte registrati, invia di nuovo i blocchi mancanti in sicurezza e completa solo dopo l'arrivo di tutte le parti previste da 10 MiB.

Ultima revisione

Gli screenshot mostrano l’interfaccia in inglese.

dosya sceglie il caricamento multipart per i file oltre 50 MiB. Un client può richiederlo per un file più piccolo non vuoto con force_multipart: true. Le sessioni multipart usano parti da 10 MiB e riprendono dal numero di parte caricato, non da un offset espresso in byte.

Quattro pannelli mostrano il caricamento dello stato della sessione, l'invio dei numeri di parte mancanti, l'accettazione sicura di una parte ripetuta e il completamento dopo tutte le parti previste.
Il diagramma mostra il caricamento dello stato della sessione, l'invio dei numeri di parte mancanti, l'accettazione sicura di una parte ripetuta e il completamento dopo tutte le parti previste. Apri lo screenshot a dimensione intera.

Prima di iniziare

  • Conserva session_id, il file sorgente, il file_size dichiarato e qualsiasi hash del contenuto finché il completamento non riesce.
  • Riprendi come lo stesso utente dosya nello stesso spazio di lavoro, usando la sessione originale e il file invariato. Puoi usare una chiave API sostitutiva autorizzata; non deve necessariamente essere quella che ha inizializzato la sessione.
  • Una sessione in attesa mai avviata può essere rimossa dopo 10 minuti; un caricamento multipart può essere eliminato dopo 24 ore senza ricevere parti. Il ciclo di vita multipart di sette giorni del bucket è solo una tutela aggiuntiva, mentre le righe delle sessioni completate o fallite possono essere eliminate dopo sette giorni. Fa fede lo stato, non una scadenza garantita.

Passaggi

  1. Chiama GET /api/upload/session_id/status. Leggi status, size_bytes, part_size, total_parts, bytes_uploaded, uploaded_parts, has_multipart e, se il completamento ha già prodotto un file, file_id.
  2. Se lo stato indica già il completamento e file_id è presente, verifica quel file invece di caricare altro. Per una sessione attiva, calcola i numeri interi mancanti da 1 a total_parts.
  3. Posiziona la lettura della sorgente locale su (partNumber - 1) × part_size e carica ogni parte mancante su PUT /api/upload/session_id/part/partNumber. L’ultima parte può essere più corta di 10 MiB.
  4. Considera una risposta riuscita a una parte ripetuta con already_uploaded: true come una conferma: non viene creata una copia. Rileggi lo stato dopo errori di trasporto perché il server può aver archiviato la parte prima dell’interruzione della connessione.
  5. Invia POST /api/upload/session_id/complete solo quando lo stato elenca tutte le parti previste. Se indica Only N of M parts uploaded. Upload remaining parts before completing., torna al calcolo delle parti mancanti.
  6. Verifica che la ricevuta di completamento contenga l’ID del file, recupera i metadati e confronta la dimensione finale misurata o l’hash configurato. Elimina il record locale di ripresa solo dopo questa verifica.
Panoramica per sviluppatori dosya con accessi ad API e SDK per riprendere un caricamento API interrotto.
La panoramica per sviluppatori fornisce i punti di accesso ad API e SDK citati in “Riprendi un caricamento API interrotto”. Apri lo screenshot a dimensione intera.

Risultato previsto

Ogni numero di parte previsto compare nello stato, il completamento restituisce la ricevuta del file archiviato e la lettura dei metadati mostra l’oggetto completato. Reinviare una parte registrata non ne crea una copia.

Risoluzione dei problemi

Lo stato non è disponibile o è scaduto. Avvia una nuova sessione solo dopo aver verificato che quella precedente non possa più essere ripresa.

Il file sorgente locale è cambiato. Interrompi la ripresa. I numeri di parte di una sequenza di byte non possono completarne un’altra in sicurezza.

Il completamento segnala parti mancanti. Consulta uploaded_parts, carica solo le parti mancanti e richiama il completamento. Non interpretare bytes_uploaded come un offset in byte da cui riprendere.

Guide correlate

Ti è stata utile?

Caricamento delle valutazioni…

Quando voti, salviamo un cookie tecnico per un massimo di 180 giorni, così puoi cambiare la tua risposta.

Domande e risposte

Fai una domanda sui passaggi di questa guida. Le domande vengono revisionate prima della pubblicazione.

Non inserire dati dell’account, credenziali o file privati nelle domande pubbliche. Usa l’assistenza privata in questi casi.

Caricamento delle domande…

    Accedi al tuo account dosya per fare una domanda.

    Controlla il risultato prima di riprovare

    Usa questi controlli quando devi verificare il risultato di un’attività.