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.

Quattro pannelli mostrano la misura della sorgente, la scelta tra trasferimento unico o riprendibile, il controllo SHA-256 e la verifica della dimensione nella ricevuta.
Il diagramma mostra la misura della sorgente, la scelta tra trasferimento unico o riprendibile, il controllo SHA-256 e la verifica della dimensione archiviata nella ricevuta. Apri lo screenshot a dimensione intera.

Prima di iniziare

  • Controlla max_file_size_bytes della chiave API, la quota di spazio di archiviazione e l’impostazione max_file_size_gb dello 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_files e access_upload per 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-Length un controllo, non una prova della dimensione archiviata; la ricevuta finale riflette i byte effettivamente ricevuti.

Passaggi

  1. Misura la sorgente prima del trasferimento. Usa il caricamento in una richiesta fino a 50 MiB inclusi; oltre questa soglia inizializza un caricamento riprendibile.
  2. Per il trasferimento in una richiesta invia Content-Length composto solo da cifre. Se la lunghezza manca o non è valida, il server restituisce 411; oltre 50 MiB restituisce 413 con Files over 50 MB use /api/upload/init and the resumable upload.
  3. Aggiungi X-Dosya-Sha256: digest quando disponibile. Se i valori non corrispondono, il server restituisce 400 con hash_mismatch e i valori atteso e ricevuto.
  4. 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.
  5. 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 workspace o la risposta relativa alla quota di archiviazione.
  6. 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.
Panoramica per sviluppatori dosya con accessi ad API e SDK per verificare la dimensione di un file caricato via API.
La panoramica per sviluppatori fornisce i punti di accesso ad API e SDK citati in “Verifica la dimensione di un file durante un caricamento API”. Apri lo screenshot a dimensione intera.

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.

    Controlla il risultato prima di riprovare

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