Una strategia per scaricare file di grandi dimensioni è chiamata download di oggetti suddivisi.
In questo download, le richieste GET
con intervallo vengono effettuate in parallelo, memorizzando i dati
in un file di destinazione temporaneo preallocato. Al termine del download di tutti i sezioni, il file temporaneo viene rinominato in file di destinazione.
I download di oggetti suddivisi possono essere notevolmente più rapidi se la velocità della rete e del disco non sono fattori limitanti. Tuttavia, i download di oggetti suddivisi causano più scrittura in varie posizioni sul disco, pertanto questa strategia di download può peggiorare le prestazioni dei dischi con tempi di ricerca lenti, in particolare quando un download viene suddiviso in un numero elevato di sezioni. Strumenti come Google Cloud CLI hanno valori predefiniti bassi per il numero di sezioni che creano in modo da ridurre al minimo possibilità di impatti sulle prestazioni.
I download di oggetti suddivisi devono sempre utilizzare un checksum componibile veloce (CRC32C) per verificare l'integrità dei dati degli slice. Per eseguire i download di oggetti suddivisi, strumenti come gcloud CLI richiedono una versione compilata di crcmod sulla macchina che esegue il download. Se il crcmod compilato non è disponibile, gcloud CLI esegue invece download di oggetti non suddivisi.
In che modo strumenti e API utilizzano i download di oggetti suddivisi
A seconda di come interagisci con Cloud Storage, i download degli oggetti suddivisi in parti potrebbero essere gestiti automaticamente per tuo conto. Questa sezione descrive il comportamento di download degli oggetti suddivisi per diversi strumenti e fornisce informazioni su come modificarlo.
Console
La console Google Cloud non esegue i download di oggetti suddivisi.
Riga di comando
Per impostazione predefinita, gcloud storage cp
abilita i download di oggetti suddivisi.
Puoi controllare come e quando gcloud CLI esegue la suddivisione in sezioni
l'oggetto viene scaricato modificando le seguenti proprietà:
storage/sliced_object_download_threshold
: le dimensioni minime del file totale per eseguire un download di oggetti suddivisi. Puoi disattivare tutte di download di oggetti suddivisi impostando questo valore su0
.storage/sliced_object_download_max_components
: la soglia massima il numero di sezioni da utilizzare nel download. Imposta0
per non avere limiti, in questo caso il numero di sezioni è determinato unicamente dastorage/sliced_object_download_component_size
.storage/sliced_object_download_component_size
: le dimensioni target per ogni segmento di download. Questa proprietà viene ignorata se il totale è talmente grande che il download di sezioni di queste dimensioni richiede più sezioni del consentito, come impostato instorage/sliced_object_download_max_components
.
Puoi modificare queste proprietà creando una configurazione denominata
e applicandola su base di comando utilizzando
il --configuration
flag a livello di progetto o per tutti
i comandi della CLI gcloud utilizzando il
gcloud config set
comando.
Non è necessario spazio su disco locale aggiuntivo quando utilizzi l'interfaccia a riga di comando gcloud per eseguire download di oggetti suddivisi. Se il download non va a buon fine prima del completamento, esegui di nuovo il comando per riprendere le sezioni che non sono andate a buon fine. Sezioni scaricate correttamente prima della errori non vengono scaricati nuovamente quando riprovi, ad eccezione del caso in cui l'oggetto di origine è cambiato tra un tentativo di download e l'altro.
Gli oggetti scaricati temporanei vengono visualizzati nella directory di destinazione con
il suffisso _.gstmp
nel nome.
Librerie client
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Puoi eseguire i download di oggetti suddivisi impostando AllowDivideAndConquer
su true
.
Ad esempio:
Node.js
Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Puoi eseguire i download di oggetti suddivisi utilizzando
downloadFileInChunks
. Ad esempio:
Python
Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.
Per autenticarti a Cloud Storage, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Puoi eseguire i download di oggetti suddivisi utilizzando
download_chunks_concurrently
. Ad esempio:
API REST
Sia l'API JSON sia l'API XML supportano le richieste GET
con intervallo, il che significa che puoi utilizzare entrambe le API per implementare la tua strategia di download degli oggetti suddivisi.
Per proteggerti dalla corruzione dei dati dovuta alla modifica dell'oggetto di origine durante il download, devi fornire il numero di generazione dell'oggetto di origine in ogni richiesta di download di una frazione dell'oggetto.