Storage Transfer Service supporta il trasferimento di file o oggetti specifici, che vengono indicati utilizzando un manifest. Un manifest è un file CSV, caricato su Cloud Storage, che contiene un elenco di file o oggetti su cui Storage Transfer Service deve agire.
Un manifest può essere utilizzato per i seguenti trasferimenti:
Da AWS S3, archiviazione compatibile con S3, Azure Blobstore o Cloud Storage a un bucket Cloud Storage.
Da un file system 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 riportate in Crea un elenco di URL, poiché il formato del manifest è univoco per gli elenchi di URL.
Crea un manifest
I file manifest devono soddisfare i seguenti requisiti:
- I manifest devono essere formattati come CSV.
- Possono contenere qualsiasi carattere UTF-8.
- La prima colonna deve essere un nome file o un nome oggetto. Il nome è relativo al percorso root o al bucket e alla cartella specificati nel job di trasferimento. Per maggiori dettagli, consulta Trasferimenti di file system e Trasferimenti di archiviazione di oggetti.
- I file manifest non supportano i caratteri jolly. I nomi delle cartelle senza un nome di file o oggetto non sono supportati.
- Se il nome di un file o di un oggetto contiene una virgola, deve essere racchiuso tra virgolette doppie. Ad esempio,
"doe,john.txt". - Non esiste un limite alle dimensioni del file manifest.
Ti consigliamo di testare il trasferimento con un piccolo sottoinsieme di file o oggetti per evitare chiamate API non necessarie dovute a errori di configurazione.
Puoi monitorare lo stato dei trasferimenti di file dalla pagina Job di trasferimento. I file o gli oggetti che non vengono trasferiti sono elencati nei log dei trasferimenti.
Trasferimenti di file system
Per creare un manifest dei file in un file system, crea un file CSV con una singola colonna contenente i percorsi dei file relativi alla directory root specificata nella creazione del job di trasferimento.
Ad esempio, per trasferire i seguenti file del file system:
| Percorso file |
|---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
Il manifest dovrebbe essere simile al seguente esempio:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Salva il file manifest con un nome file qualsiasi e un'estensione .csv.
Trasferimenti di archiviazione di oggetti
Per creare un manifest di 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 manifest dovrebbe essere simile al seguente esempio:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Salva il file manifest con un nome file qualsiasi e un'estensione .csv.
Trasferimenti HTTP/HTTPS
Per trasferire file specifici da un'origine HTTP o HTTPS, consulta le istruzioni riportate in Crea un elenco di URL.
Pubblica il manifest
Dopo aver creato il manifest, devi renderlo disponibile per Storage Transfer Service. Storage Transfer Service può accedere al file in un bucket Cloud Storage o nel tuo 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 disporre dell'autorizzazione storage.objects.get per il bucket contenente il manifest. Consulta Concedi le autorizzazioni richieste per istruzioni su come trovare l'ID dell'agente di servizio e concedere le autorizzazioni a quell'agente di servizio su un bucket.
Per istruzioni sul caricamento del manifest in un bucket, consulta Carica oggetti nella documentazione di Cloud Storage.
Ad esempio, per utilizzare l'interfaccia a riga di comando gcloud per caricare un file su Cloud Storage, utilizza il comando gcloud storage cp:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Sostituisci quanto segue:
MANIFEST.CSVè il percorso locale del file manifest. Ad esempio,Desktop/manifest01.csv.DESTINATION_BUCKET_NAMEè il nome del bucket in cui stai caricando l'oggetto. Ad esempio,my-bucket.
Se l'operazione ha esito positivo, la risposta è simile al seguente esempio:
Completed files 1/1 | 164.3kiB/164.3kiB
Puoi criptare un manifest o il bucket che lo contiene utilizzando le chiavi di crittografia Cloud KMS gestite dal cliente. In questo caso, concedi il ruolo Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) sulla chiave Cloud KMS utilizzata per criptare il manifest a entrambi i seguenti agenti di servizio:
- L'agente di servizio Storage Transfer Service,
project-PROJECT_NUMBER@storage-transfer-service.. - Il service agent Cloud Storage per il progetto che contiene il bucket del manifest,
service-PROJECT_NUMBER@gs-project-accounts..
Per istruzioni su come concedere questo ruolo, consulta Assegna una chiave Cloud KMS a un agente di servizio. Le chiavi di crittografia fornite dal cliente non sono supportate.
Archivia il manifest in un file system
Puoi archiviare il file manifest nel file system di origine o di destinazione.
La posizione del file deve essere accessibile agli agenti di trasferimento. Se limiti l'accesso alla directory per i tuoi 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 durante un trasferimento.
console Cloud
Per avviare un trasferimento con un manifest dalla console Cloud:
Segui le istruzioni riportate in Crea trasferimenti per selezionare l'origine, la destinazione e le opzioni.
Nel passaggio finale, Scegli le impostazioni, seleziona la casella di controllo denominata Fornisci l'elenco dei file da trasferire tramite il file manifest.
Inserisci la posizione 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 dei seguenti valori:
Il percorso del file CSV in un bucket Cloud Storage:
--manifest-file=gs://my_bucket/sample_manifest.csvPer informazioni dettagliate sulle autorizzazioni richieste, se il bucket o il file non sono pubblici, consulta Carica il manifest su Cloud Storage.
Il percorso relativo dal file system SOURCE, incluso l'eventuale percorso specificato:
--manifest-file=source://relative_path/sample_manifest.csvIl percorso relativo dal file system DESTINATION, incluso qualsiasi 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 o 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 posizioni del file system devono utilizzare un prefisso source:// o destination:// e sono relative all'origine o alla destinazione del file system e alla directory root facoltativa.
Vai
Java
Node.js
Python
Gli oggetti o i file nel manifest non vengono necessariamente trasferiti nell'ordine elencato.
Se il manifest include file già esistenti nella destinazione, questi 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.