Storage Transfer Service mendukung transfer file atau objek tertentu, yang ditentukan menggunakan manifes. Manifes adalah file CSV, yang diupload ke Cloud Storage, yang berisi daftar file atau objek yang akan ditindaklanjuti oleh Storage Transfer Service.
Manifes dapat digunakan untuk transfer berikut:
Dari AWS S3, penyimpanan yang kompatibel dengan S3, Azure Blobstore, atau Cloud Storage ke bucket Cloud Storage.
Dari sistem file ke bucket Cloud Storage.
Dari bucket Cloud Storage ke sistem file.
Antara dua sistem file.
Dari sumber HTTP/HTTPS yang dapat diakses secara publik ke bucket Cloud Storage. Ikuti petunjuk di Membuat daftar URL karena format manifes unik untuk daftar URL.
Membuat manifes
File manifes memiliki persyaratan berikut:
- Manifes harus diformat sebagai CSV.
- Nama tersebut dapat berisi karakter UTF-8 apa pun.
- Kolom pertama harus berupa nama file atau nama objek. Nama ini relatif terhadap jalur root atau bucket dan folder yang ditentukan dalam tugas transfer; lihat Transfer sistem file dan Transfer penyimpanan objek untuk mengetahui detailnya.
- File manifes tidak mendukung karakter pengganti. Nama folder tanpa nama file atau objek tidak didukung.
- Jika nama file atau objek berisi koma, nama harus diapit tanda petik ganda. Misalnya,
"doe,john.txt"
. - Untuk transfer yang menggunakan agen transfer (yaitu, transfer sistem file atau transfer dari penyimpanan yang kompatibel dengan S3), ukuran file manifes maksimum adalah 1 GiB, yang setara dengan sekitar 1 juta baris. Jika file manifes Anda lebih besar dari 1 GiB, Anda dapat membaginya menjadi beberapa file dan menjalankan beberapa tugas transfer. Untuk transfer tanpa agen, tidak ada batasan ukuran file manifes.
Sebaiknya uji transfer Anda dengan sebagian kecil file atau objek untuk menghindari panggilan API yang tidak perlu karena error konfigurasi.
Anda dapat memantau status transfer file dari halaman Tugas Transfer. File atau objek yang gagal ditransfer akan dicantumkan dalam log transfer.
Transfer sistem file
Untuk membuat manifes file di sistem file, buat file CSV dengan satu kolom yang berisi jalur file relatif terhadap direktori root yang ditentukan dalam pembuatan tugas transfer.
Misalnya, untuk mentransfer file sistem file berikut:
Jalur file |
---|
rootdir/dir1/subdir1/file1.txt |
rootdir/file2.txt |
rootdir/dir2/subdir1/file3.txt |
Manifes Anda akan terlihat seperti contoh berikut:
dir1/subdir1/file1.txt
file2.txt
dir2/subdir1/file3.txt
Simpan file manifes dengan nama file apa pun, dan ekstensi .csv
.
Transfer penyimpanan objek
Untuk membuat manifes objek, buat file CSV yang kolom pertamanya berisi nama objek relatif terhadap nama dan jalur bucket yang ditentukan dalam pembuatan tugas transfer. Semua objek harus berada di bucket yang sama.
Anda juga dapat menentukan kolom kedua opsional dengan nomor generasi Cloud Storage dari versi tertentu yang akan ditransfer.
Misalnya, Anda mungkin ingin mentransfer objek berikut:
Jalur objek | Nomor generasi Cloud Storage |
---|---|
SOURCE_PATH/object1.pdf |
1664826685911832 |
SOURCE_PATH/object2.pdf |
|
SOURCE_PATH/object3.pdf |
1664826610699837 |
Manifes Anda akan terlihat seperti contoh berikut:
object1.pdf,1664826685911832
object2.pdf
object3.pdf,1664826610699837
Simpan file manifes dengan nama file apa pun, dan ekstensi .csv
.
Transfer HTTP/HTTPS
Untuk mentransfer file tertentu dari sumber HTTP atau HTTPS, lihat petunjuk di Membuat daftar URL.
Publikasikan manifes
Setelah membuat manifes, Anda harus menyediakannya untuk Storage Transfer Service. Storage Transfer Service dapat mengakses file di bucket Cloud Storage, atau di sistem file Anda.
Mengupload manifes ke Cloud Storage
Anda dapat menyimpan file manifes di bucket Cloud Storage mana pun.
Agen layanan yang menjalankan
transfer harus memiliki izin storage.objects.get
untuk bucket yang berisi
manifes. Lihat
Memberikan izin yang diperlukan
untuk mengetahui petunjuk tentang cara menemukan ID agen layanan, dan memberikan izin kepada
agen layanan tersebut di bucket.
Untuk mengetahui petunjuk cara mengupload manifes ke bucket, lihat Mengupload objek dalam dokumentasi Cloud Storage.
Misalnya, untuk menggunakan CLI gcloud
guna mengupload file ke Cloud Storage, gunakan perintah gcloud storage cp
:
gcloud storage cp MANIFEST.CSV gs://DESTINATION_BUCKET_NAME/
Dengan:
MANIFEST.CSV
adalah jalur lokal ke file manifest Anda. Contoh,Desktop/manifest01.csv
.DESTINATION_BUCKET_NAME
adalah nama bucket tempat Anda mengupload objek. Contohnya,my-bucket
.
Jika berhasil, responsnya akan terlihat seperti contoh berikut:
Completed files 1/1 | 164.3kiB/164.3kiB
Anda dapat mengenkripsi manifes menggunakan kunci enkripsi Cloud KMS yang dikelola pelanggan. Dalam hal ini, pastikan semua akun layanan yang mengakses manifes diberi kunci enkripsi yang berlaku. Kunci yang disediakan pelanggan tidak didukung.
Menyimpan manifes pada sistem file
Anda dapat menyimpan file manifes di sistem file sumber atau tujuan.
Lokasi file harus dapat diakses oleh agen transfer. Jika Anda membatasi akses direktori untuk agen, pastikan file manifes berada dalam direktori yang di-mount.
Memulai transfer
Jangan ubah file manifes hingga operasi transfer selesai. Sebaiknya Anda mengunci file manifes saat transfer sedang berlangsung.
Cloud Console
Untuk memulai transfer dengan manifes dari konsol Cloud:
Ikuti petunjuk di Membuat transfer untuk memilih sumber, tujuan, dan opsi Anda.
Pada langkah terakhir, Pilih setelan, centang kotak bernama Berikan daftar file yang akan ditransfer melalui file manifes.
Masukkan lokasi file manifes.
gcloud
Untuk mentransfer file atau objek yang tercantum dalam manifes, sertakan
flag --manifest-file=MANIFEST_FILE
dengan perintah
gcloud transfer jobs create
Anda.
gcloud transfer jobs create SOURCE DESTINATION \
--manifest-file=MANIFEST_FILE
MANIFEST_FILE dapat berupa salah satu nilai berikut:
Jalur ke file CSV di bucket Cloud Storage:
--manifest-file=gs://my_bucket/sample_manifest.csv
Lihat Mengupload manifes ke Cloud Storage untuk mengetahui detail tentang izin yang diperlukan, jika bucket atau file tidak bersifat publik.
Jalur relatif dari SOURCE sistem file, termasuk jalur yang ditentukan:
--manifest-file=source://relative_path/sample_manifest.csv
Jalur relatif dari sistem file DESTINATION, termasuk jalur yang ditentukan:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + Library klien
REST
Untuk mentransfer file atau objek yang tercantum dalam manifes, lakukan panggilan API createTransferJob
yang menentukan transferSpec
dengan menambahkan kolom transferManifest
. Contoh:
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" } }
File manifes dapat disimpan di bucket Cloud Storage, atau di sistem file sumber atau tujuan. Bucket Cloud Storage harus menggunakan
prefiks gs://
dan menyertakan jalur lengkap, termasuk nama
bucket. Lokasi sistem file harus menggunakan awalan source://
atau
destination://
dan bersifat relatif terhadap sumber sistem file
atau tujuan, dan direktori root opsional.
Go
Java
Node.js
Python
Objek atau file dalam manifes tidak harus ditransfer dalam urutan yang tercantum.
Jika manifes menyertakan file yang sudah ada di tujuan, file tersebut akan dilewati kecuali jika opsi timpa objek yang sudah ada di sink ditentukan.
Jika manifes menyertakan objek yang ada dalam versi yang berbeda di tujuan, objek di tujuan akan ditimpa dengan versi sumber objek. Jika tujuannya adalah bucket yang diberi versi, versi baru objek akan dibuat.
Langkah berikutnya
- Pelajari cara memfilter objek dari transfer.
- Pelajari cara menjadwalkan tugas transfer.