Cloud Storage supporta i flussi di dati in un bucket senza dover prima salvare i dati in un file. Ciò è utile quando vuoi caricare dati ma non conosci la dimensione finale all'inizio del caricamento, ad esempio quando generi i dati di caricamento da un processo o quando comprimi un oggetto all'istante.
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 il flusso di dati. Ti consigliamo di utilizzare sempre la convalida del checksum ed è possibile farlo manualmente al termine del caricamento di un flusso di dati. Tuttavia, la convalida al termine del trasferimento implica che i dati danneggiati saranno accessibili durante il tempo necessario per confermare il danneggiamento e rimuoverli.
Se richiedi la convalida del checksum prima del completamento del caricamento e i dati diventano accessibili, non devi utilizzare un caricamento di flussi di dati. Dovresti utilizzare un'opzione di caricamento diversa che esegue la convalida del checksum prima di 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 all'amministratore di concederti il ruolo IAM Amministratore oggetti Storage (
roles/storage.objectAdmin
) per il bucket.In tutti gli altri casi, chiedi all'amministratore di concederti il ruolo IAM Utente oggetti Storage (
roles/storage.objectUser
) per il bucket.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per trasmettere i flussi di caricamenti in Cloud Storage. Per visualizzare con esattezza le autorizzazioni necessarie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.create
storage.objects.delete
- Questa autorizzazione è richiesta solo per i caricamenti che sovrascrivono un oggetto esistente.
storage.objects.get
storage.objects.list
- Questa autorizzazione è richiesta solo per utilizzare Google Cloud CLI per eseguire le istruzioni in questa pagina.
storage.objects.setRetention
- Questa autorizzazione è richiesta solo per i caricamenti che includono un blocco per la conservazione degli oggetti.
Puoi ottenere queste autorizzazioni anche con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione dei ruoli sui 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 un oggetto Cloud Storage:
Console
La console Google Cloud non supporta i caricamenti di flussi di dati. Utilizza invece gcloud CLI.
Riga di comando
Inserisci i dati nel 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 creato dai dati. Ad esempio,data_measurements
.
Librerie client
C++
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C++ di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
C#
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Go
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Go di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Java
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Node.js
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
PHP
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API PHP di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Python
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Python di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
Ruby
Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Ruby di Cloud Storage.
Per eseguire l'autenticazione su Cloud Storage, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per un ambiente di sviluppo locale.
API REST
API JSON
Per eseguire il caricamento di un flusso di dati, segui le istruzioni per eseguire un caricamento ripristinabile tenendo presente quanto segue:
Quando carichi i dati del file, utilizza il caricamento di più blocchi.
Poiché non conosci le dimensioni totali del file fino a quando non arrivi al blocco finale, utilizza
*
per le dimensioni totali del file nell'intestazioneContent-Range
dei 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 dopo il primo blocco rimangono 64.000 byte, dovrai inviare un blocco finale che contiene i byte rimanenti e ha un'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 caricamento di più blocchi.
Poiché non conosci le dimensioni totali del file fino a quando non arrivi al blocco finale, utilizza
*
per le dimensioni totali del file nell'intestazioneContent-Range
dei blocchi intermedi.Ad esempio, se il primo blocco che carichi ha una dimensione di 512 KiB, l'intestazione
Content-Range
del blocco èbytes 0-524287/*
. Se il caricamento rimane 64.000 byte dopo il primo blocco, invia un blocco finale che contiene i byte rimanenti e ha 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.