Cloud Storage supporta i flussi di dati in un bucket senza che venga richiesto salvare prima i dati in un file. Questo è utile quando vuoi caricare dati, non conoscono la dimensione finale all'inizio del caricamento, ad esempio durante la generazione i dati di caricamento da un processo o quando si comprime un oggetto in tempo reale.
Utilizzo della convalida del checksum durante il flusso di dati
Poiché un checksum può essere fornito solo nella richiesta iniziale di un caricamento, spesso non è possibile utilizzare la convalida del checksum di Cloud Storage durante lo streaming. È consigliabile utilizzare sempre la convalida del checksum puoi farlo manualmente al termine di un caricamento in streaming; tuttavia, convalidare al termine del trasferimento significa che i dati danneggiati sono accessibili durante il tempo necessario per confermare il danno e rimuoverlo.
Se è necessaria la convalida del checksum prima del completamento del caricamento e dei dati diventano accessibili, allora non dovresti usare un caricamento in streaming. Dovresti usare un'opzione di caricamento diversa che esegua la convalida del checksum prima per finalizzare l'oggetto.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per lo streaming dei caricamenti, chiedi all'amministratore di concederti uno dei seguenti ruoli:
Per i caricamenti che includono un blocco per la conservazione degli oggetti, chiedi al tuo che ti conceda il ruolo di Amministratore oggetti Storage (
roles/storage.objectAdmin
) Ruolo IAM per il bucket.In tutti gli altri casi, chiedi all'amministratore di concederti l'oggetto Storage Ruolo IAM dell'utente (
roles/storage.objectUser
) per il bucket.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per trasmettere i caricamenti in streaming di archiviazione ideale in Cloud Storage. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.create
storage.objects.delete
- Questa autorizzazione è richiesta solo per i caricamenti che sovrascrivono un file .
storage.objects.get
storage.objects.list
- Questa autorizzazione è richiesta solo per utilizzare Google Cloud CLI per seguire le istruzioni riportate in questa pagina.
storage.objects.setRetention
- Questa autorizzazione è richiesta solo per i caricamenti che includono un oggetto Blocco conservazione.
Puoi ottenere queste autorizzazioni anche con altri ruoli predefiniti oppure ruoli personalizzati.
Per informazioni sulla concessione dei ruoli nei bucket, consulta Utilizzare IAM con i bucket.
Riprodurre in streaming un caricamento
I seguenti esempi mostrano come eseguire un caricamento di flussi di dati da un processo a di un oggetto Cloud Storage:
Console
La console Google Cloud non supporta i caricamenti di flussi di dati. Utilizza la con gcloud CLI.
Riga di comando
Effettua la pipeline dei dati al comando
gcloud storage cp
e utilizza un trattino per l'URL di origine:PROCESS_NAME | gcloud storage cp - gs://BUCKET_NAME/OBJECT_NAME
Dove:
PROCESS_NAME
è il nome del processo da cui raccogli i dati. Ad esempio:collect_measurements
.BUCKET_NAME
è il nome del bucket che contiene l'oggetto. Ad esempio,my_app_bucket
.OBJECT_NAME
è il nome dell'oggetto che viene creato a partire dai dati. Ad esempio,data_measurements
.
Librerie client
C++
Per ulteriori informazioni, consulta API Cloud Storage C++ documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta API Cloud Storage C# documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta API Cloud Storage Go documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta API Cloud Storage Java documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta API Cloud Storage Node.js documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
PHP
Per ulteriori informazioni, consulta API Cloud Storage PHP documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta API Cloud Storage Python documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta API Cloud Storage Ruby documentazione di riferimento.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Per eseguire un caricamento in streaming, segui le istruzioni per eseguire un caricamento ripristinabile tenendo conto delle seguenti considerazioni:
Quando carichi i dati del file, utilizza il caricamento di più blocchi.
Poiché non conosci le dimensioni totali del file prima di passare al usa un valore
*
per le dimensioni totali del file nell'intestazioneContent-Range
di blocchi intermedi.Ad esempio, se il primo blocco che carichi ha una dimensione di 512 KiB, L'intestazione
Content-Range
per il blocco èbytes 0-524287/*
. Se le tue rimangono 64.000 byte dopo il primo blocco, quindi invia un blocco finale che contiene i byte rimanenti e ha IntestazioneContent-Range
con il valorebytes 524288-588287/588288
.
API XML
Per eseguire il caricamento di un flusso di dati, utilizza uno dei seguenti metodi:
Un caricamento ripristinabile con le seguenti modifiche:
Quando carichi i dati del file, utilizza un metodo caricamento di più blocchi.
Poiché non conosci le dimensioni totali del file finché non arrivi alle blocco finale, utilizza
*
per le dimensioni totali del file IntestazioneContent-Range
di blocchi intermedi.Ad esempio, se il primo blocco caricato ha una dimensione di 512 KiB, l'intestazione
Content-Range
del blocco èbytes 0-524287/*
. Se il caricamento ha 64.000 byte rimanenti dopo il primo blocco, invia quindi un blocco finale contenente i byte rimanenti un'intestazioneContent-Range
con il valorebytes 524288-588287/588288
.
Passaggi successivi
- Riprodurre in streaming un download.
- Scopri di più sulla transcodifica decompressiva.
- Scopri di più su caricamenti e download.