Verifica la dimensione di un file durante un caricamento API
Applica i controlli sulle dimensioni dichiarate e misurate, aggiungi la verifica SHA-256 e leggi la dimensione finale in byte dalla ricevuta del file archiviato da dosya.
Ultima revisione
Gli screenshot mostrano l’interfaccia in inglese.
dosya controlla la dimensione dichiarata prima di accettare i byte e misura il corpo durante la lettura. I caricamenti in una sola richiesta richiedono un Content-Length decimale; oltre 50 MiB occorre usare una sessione di caricamento.

Prima di iniziare
- Controlla
max_file_size_bytesdella chiave API, la quota di spazio di archiviazione e l’impostazionemax_file_size_gbdello spazio di lavoro. I caricamenti REST non applicano un limite di dimensione del file a livello di ruolo. - La chiave deve poter accedere allo spazio di lavoro scelto e il ruolo del membro deve consentire
upload_fileseaccess_uploadper questa modalità di caricamento REST. - Calcola un digest SHA-256 di 64 caratteri in minuscolo quando conta l’identità dei byte da un capo all’altro.
- Considera
Content-Lengthun controllo, non una prova della dimensione archiviata; la ricevuta finale riflette i byte effettivamente ricevuti.
Passaggi
- Misura la sorgente prima del trasferimento. Usa il caricamento in una richiesta fino a 50 MiB inclusi; oltre questa soglia inizializza un caricamento riprendibile.
- Per il trasferimento in una richiesta invia
Content-Lengthcomposto solo da cifre. Se la lunghezza manca o non è valida, il server restituisce 411; oltre 50 MiB restituisce 413 conFiles over 50 MB use /api/upload/init and the resumable upload. - Aggiungi
X-Dosya-Sha256: digestquando disponibile. Se i valori non corrispondono, il server restituisce 400 conhash_mismatche i valori atteso e ricevuto. - Invia il corpo conservando lo stato e l’errore JSON. Se il corpo misurato supera il buffer consentito, il server può restituire 413 con
upload_declared_size_mismatch. - Gestisci i rifiuti in base al motivo indicato:
This API key does not permit files larger than N bytes (max_file_size_bytes),File exceeds the X GB size limit for this workspaceo la risposta relativa alla quota di archiviazione. - Se il caricamento riesce, leggi dalla ricevuta la dimensione effettivamente archiviata e l’ID file, poi recupera i metadati. Non rifiutare un caricamento riuscito solo perché sono arrivati meno byte di quelli dichiarati; decidi in base al risultato misurato e al digest.

Risultato previsto
Un corpo consentito produce una ricevuta la cui dimensione misurata coincide con i metadati e un eventuale SHA-256 conferma i byte. Un input troppo grande, non consentito o corrotto viene rifiutato prima di diventare un risultato attendibile.
Risoluzione dei problemi
Il server restituisce 411. Indica la lunghezza effettiva in byte come numero decimale; un trasferimento a blocchi in una richiesta non soddisfa questo requisito.
Il file supera 50 MiB. Usa /api/upload/init, blocchi da 10 MiB e la route di completamento.
Le dimensioni dichiarata e archiviata differiscono. Considera attendibile la ricevuta, confronta il digest e controlla il produttore dei dati prima di continuare.
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.