Storage Transfer Service supporta il trasferimento di file o oggetti specifici, specificati tramite un manifest. Un file manifest è un file CSV caricato in Cloud Storage che contiene un elenco di file o oggetti su cui Storage Transfer Service deve intervenire.
Un manifest può essere utilizzato per i seguenti trasferimenti:
Da AWS S3, Azure Blobstore o Cloud Storage a un bucket Cloud Storage.
Da un file system a un bucket Cloud Storage.
Dallo spazio di archiviazione compatibile con S3 a un bucket Cloud Storage.
Da un bucket Cloud Storage a un file system.
Tra due file system.
Da un'origine HTTP/HTTPS accessibile pubblicamente a un bucket Cloud Storage. Segui le istruzioni nella pagina Creare un elenco di URL poiché il formato manifest è univoco per gli elenchi di URL.
Crea un manifest
I manifest devono essere formattati come CSV e possono contenere qualsiasi carattere UTF-8. La prima colonna deve essere un percorso file o un nome oggetto specificato come stringa.
La dimensione massima del file manifest è 1 GiB, il che si traduce in circa 1 milione di righe. Se devi trasferire un file manifest di dimensioni superiori a 1 GiB, puoi dividerlo in più file ed eseguire più job di trasferimento.
Se il nome di un file o di un oggetto contiene virgole, deve essere racchiuso tra virgolette doppie, in base agli standard CSV.
Ad esempio, "object1,a.txt"
.
Ti consigliamo di testare il trasferimento con un piccolo sottoinsieme di file o oggetti per evitare chiamate API non necessarie a causa di errori di configurazione.
Puoi monitorare lo stato dei trasferimenti di file dalla pagina dei job di trasferimento. I file o gli oggetti che non vengono trasferiti sono elencati nei log di trasferimento.
Trasferimenti di file system
Per creare un manifest di file su un file system, crea un file CSV con una singola colonna contenente i percorsi dei file relativi alla directory principale specificata nella creazione del job di trasferimento.
Ad esempio, potresti voler trasferire i seguenti file system:
Percorso file |
---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
Il file manifest dovrebbe essere simile all'esempio seguente:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Trasferimenti di oggetti archiviati
Per creare un manifest degli oggetti, crea un file CSV la cui prima colonna contiene i nomi degli oggetti relativi al nome e al percorso del bucket specificati nella creazione del job di trasferimento. Tutti gli oggetti devono trovarsi nello stesso bucket.
Puoi anche specificare una seconda colonna facoltativa con il numero di generazione di Cloud Storage della versione specifica da trasferire.
Ad esempio, potresti voler trasferire i seguenti oggetti:
Percorso oggetto | Numero di generazione di Cloud Storage |
---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
Il file manifest dovrebbe essere simile all'esempio seguente:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Salva il file manifest con qualsiasi nome file e un'estensione .csv
.
Trasferimenti HTTP/HTTPS
Per trasferire file specifici da un'origine HTTP o HTTPS, consulta le istruzioni riportate in Creare un elenco di URL.
Pubblica il manifest
Dopo aver creato il manifest, devi renderlo disponibile a Storage Transfer Service. Storage Transfer Service può accedere al file in un bucket Cloud Storage o nel file system.
Carica il manifest su Cloud Storage
Puoi archiviare il file manifest in qualsiasi bucket Cloud Storage.
L'agente di servizio che esegue il trasferimento deve avere l'autorizzazione storage.objects.get
per il bucket contenente il manifest. Consulta
Concedi le autorizzazioni richieste
per istruzioni su come trovare l'ID agente di servizio e sulle autorizzazioni per
l'agente di servizio su un bucket.
Per istruzioni sul caricamento del manifest in un bucket, consulta la pagina Caricare gli oggetti nella documentazione di Cloud Storage.
Ad esempio, per utilizzare l'interfaccia a riga di comando gcloud
per caricare un file in Cloud Storage, utilizza il comando gcloud storage cp
:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Dove:
MANIFEST.CSV
è il percorso locale del tuo file manifest. Ad esempio,Desktop/manifest01.csv
.DESTINATION_BUCKET_NAME
è il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket
.
In caso di esito positivo, la risposta avrà il seguente esempio:
Completed files 1/1 | 164.3kiB/164.3kiB
Puoi criptare un manifest con le chiavi di crittografia Cloud KMS gestite dal cliente. In questo caso, assicurati che agli account di servizio che accedono al manifest siano assegnate le chiavi di crittografia applicabili. Le chiavi fornite dal cliente non sono supportate.
Archivia il manifest su un file system
Puoi archiviare il file manifest nel tuo file system di origine o di destinazione.
La posizione del file deve essere accessibile agli agenti trasferiti. Se limiti l'accesso alla directory per gli agenti, assicurati che il file manifest si trovi in una directory montata.
Avviare un trasferimento
Non modificare il file manifest fino al completamento di un'operazione di trasferimento. Ti consigliamo di bloccare il file manifest quando viene eseguito un trasferimento.
console Cloud
Per avviare un trasferimento con un manifest dalla console Cloud:
Segui le istruzioni riportate in Creare trasferimenti per selezionare l'origine, la destinazione e le opzioni.
Nel passaggio finale, Scegli le impostazioni, seleziona la casella di controllo Fornisci l'elenco dei file da trasferire tramite il file manifest.
Inserisci il percorso del file manifest.
gcloud
Per trasferire i file o gli oggetti elencati nel manifest, includi il flag --manifest-file=MANIFEST_FILE
con il comando gcloud transfer jobs create
.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
MANIFEST_FILE può essere uno qualsiasi dei seguenti valori:
Il percorso al file CSV in un bucket Cloud Storage:
--manifest-file=gs://my_bucket/sample_manifest.csv
Per i dettagli sulle autorizzazioni richieste, se il bucket o il file non sono pubblici, consulta Caricare il manifest in Cloud Storage.
Il percorso relativo del file system SOURCE, incluso qualsiasi percorso specificato:
--manifest-file=source://relative_path/sample_manifest.csv
Il percorso relativo del file system DESTINATION, incluso il percorso specificato:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + librerie client
REST
Per trasferire i file o gli oggetti elencati nel manifest, effettua una chiamata API createTransferJob
che specifica un transferSpec
con il campo transferManifest
aggiunto. Ad esempio:
POST https://storagetransfer.googleapis.com/v1/transferJobs ... "transferSpec": { "posixDataSource": { "rootDirectory": "/home/", }, "gcsDataSink": { "bucketName": "GCS_NEARLINE_SINK_NAME", "path": "GCS_SINK_PATH", }, "transferManifest": { "location": "gs://my_bucket/sample_manifest.csv" } }
Il file manifest può essere archiviato in un bucket Cloud Storage oppure nel file system di origine o di destinazione. I bucket Cloud Storage devono utilizzare il prefisso gs://
e includere il percorso completo, incluso il nome del bucket. Le località del file system devono utilizzare un prefisso source://
o destination://
e sono relative all'origine o alla destinazione del file system, nonché la directory principale facoltativa.
Go
Java
Node.js
Python
Gli oggetti o i file nel manifest non vengono necessariamente trasferiti nell'ordine indicato.
Se il manifest include file già esistenti nella destinazione, i file vengono ignorati a meno che non venga specificata l'opzione Sovrascrivi gli oggetti già esistenti nel sink.
Se il manifest include oggetti che esistono in una versione diversa nella destinazione, l'oggetto nella destinazione viene sovrascritto con la versione di origine dell'oggetto. Se la destinazione è un bucket con controllo delle versioni, viene creata una nuova versione dell'oggetto.
Passaggi successivi
- Scopri come filtrare gli oggetti dai trasferimenti.
- Scopri come pianificare i job di trasferimento.