Cloud Storage supporta lo streaming dei dati in un bucket senza richiedere che i dati vengano prima salvati in un file. Questo è utile quando vuoi caricare dati, ma non conosci le dimensioni finali all'inizio del caricamento, ad esempio quando generi i dati di caricamento da un processo o quando comprimi un oggetto al volo.
Utilizzo della convalida del checksum durante lo streaming
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. Ti consigliamo di utilizzare sempre la convalida del checksum e di eseguirla manualmente al termine di un caricamento in modalità flusso. Tuttavia, la convalida dopo il completamento del trasferimento significa che i dati danneggiati sono accessibili durante il tempo necessario per confermare il danneggiamento e rimuoverli.
Se hai bisogno della convalida del checksum prima che il caricamento venga completato e i dati diventino accessibili, non devi utilizzare un caricamento in modalità flusso. Devi utilizzare un'opzione di caricamento diversa che esegua la convalida del checksum prima di finalizzare l'oggetto.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per i caricamenti in streaming, chiedi all'amministratore di concederti uno dei seguenti ruoli:
Per i caricamenti che includono un blocco di conservazione degli oggetti, chiedi all'amministratore di concederti il ruolo IAM Storage Object Admin (
roles/storage.objectAdmin) per il bucket.In tutti gli altri casi, chiedi all'amministratore di concederti il ruolo IAM Storage Object User (
roles/storage.objectUser) per il bucket.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per trasmettere i caricamenti in streaming a Cloud Storage. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
storage.objects.createstorage.objects.delete- Questa autorizzazione è richiesta solo per i caricamenti che sovrascrivono un oggetto esistente.
storage.objects.list- Questa autorizzazione è necessaria solo per utilizzare Google Cloud CLI per eseguire le istruzioni riportate in questa pagina.
storage.objects.setRetention- Questa autorizzazione è richiesta solo per i caricamenti che includono un blocco della conservazione degli oggetti.
Puoi anche ottenere queste autorizzazioni con altri ruoli predefiniti o ruoli personalizzati.
Per informazioni sulla concessione di ruoli sui bucket, consulta Imposta e gestisci le policy IAM sui bucket.
Trasmetti un caricamento in streaming
Gli esempi seguenti mostrano come eseguire un caricamento in modalità flusso da un processo a un oggetto Cloud Storage:
Console
La console Cloud de Confiance non supporta i caricamenti in streaming. Utilizza invece gcloud CLI.
Riga di comando
Invia i dati al comando
gcloud storage cpe 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 stai raccogliendo i dati. Ad esempio,collect_measurements.BUCKET_NAMEè il nome del bucket contenente l'oggetto. Ad esempio,my_app_bucket.OBJECT_NAMEè il nome dell'oggetto creato dai dati. Ad esempio,data_measurements.
Librerie client
C++
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C++.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
C#
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage C#.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Go
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Go.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Java.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Node.js
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Node.js.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
PHP
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage PHP.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Python.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Ruby
Per saperne di più, consulta la documentazione di riferimento dell'API Cloud Storage Ruby.
Per eseguire l'autenticazione in Cloud Storage, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Rust
API REST
API JSON
Per eseguire un caricamento in modalità flusso, utilizza uno dei seguenti metodi:
Un caricamento ripristinabile, con i seguenti aggiustamenti:
Quando carichi i dati del file, utilizza un caricamento in più blocchi.
Poiché non conosci le dimensioni totali del file finché non arrivi al blocco finale, utilizza un
*per le dimensioni totali del file nell'intestazioneContent-Rangedei blocchi intermedi.Ad esempio, se il primo chunk che carichi ha una dimensione di 512 KiB, l'intestazione
Content-Rangeper il chunk èbytes 0-524287/*. Se dopo il primo chunk rimangono 64.000 byte da caricare, invia un chunk finale contenente i byte rimanenti e con un'intestazioneContent-Rangecon il valorebytes 524288-588287/588288.
Un caricamento con richiesta singola, con i seguenti aggiustamenti:
Includi un'intestazione
Transfer-Encoding: chunkeded escludi l'intestazioneContent-Length.Crea la richiesta in base alla specifica, inviando i dati dell'oggetto in blocchi man mano che diventano disponibili.
API XML
Per eseguire un caricamento in modalità flusso, utilizza uno dei seguenti metodi:
Un caricamento ripristinabile, con i seguenti aggiustamenti:
Quando carichi i dati del file, utilizza un caricamento in più blocchi.
Poiché non conosci le dimensioni totali del file finché non arrivi al blocco finale, utilizza un
*per le dimensioni totali del file nell'intestazioneContent-Rangedei blocchi intermedi.Ad esempio, se il primo chunk che carichi ha una dimensione di 512 KiB, l'intestazione
Content-Rangeper il chunk èbytes 0-524287/*. Se dopo il primo chunk rimangono 64.000 byte da caricare, invia un chunk finale contenente i byte rimanenti e con un'intestazioneContent-Rangecon il valorebytes 524288-588287/588288.
Un caricamento con richiesta singola, con i seguenti aggiustamenti:
Includi un'intestazione
Transfer-Encoding: chunkeded escludi l'intestazioneContent-Length.Crea la richiesta in base alla specifica, inviando i dati dell'oggetto in blocchi man mano che diventano disponibili.
Passaggi successivi
- Riproduci in streaming un download.
- Scopri di più sulla transcodifica decompressiva.
- Scopri di più sui caricamenti di oggetti.