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 untuk ditindaklanjuti oleh Storage Transfer Service.
Manifes dapat digunakan untuk transfer berikut:
Dari AWS S3, Azure Blobstore, atau Cloud Storage ke bucket Cloud Storage.
Dari sistem file ke bucket Cloud Storage.
Dari penyimpanan yang kompatibel dengan S3 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 dalam Membuat daftar URL karena format manifes bersifat unik untuk daftar URL.
Membuat manifes
Manifes harus diformat sebagai CSV dan dapat berisi karakter UTF-8. Kolom pertama harus berupa nama file atau nama objek yang ditetapkan sebagai string.
File manifes tidak mendukung karakter pengganti. Nilai ini harus berupa file atau nama objek tertentu. Nama folder tanpa nama objek atau file tidak didukung.
Ukuran file manifes maksimum adalah 1 GiB, yang berarti sekitar 1 juta baris. Jika perlu mentransfer file manifes yang lebih besar dari 1 GiB, Anda dapat membaginya menjadi beberapa file dan menjalankan beberapa tugas transfer.
Jika nama file atau objek berisi koma, nama tersebut harus diapit dalam tanda kutip ganda, sesuai dengan standar CSV.
Contoh, "object1,a.txt"
.
Sebaiknya uji transfer Anda dengan subset 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 tercantum dalam log transfer.
Transfer sistem file
Untuk membuat manifes file pada sistem file, buat file CSV dengan satu kolom yang berisi jalur file yang terkait dengan direktori root yang ditentukan dalam pembuatan tugas transfer.
Misalnya, Anda dapat 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
Transfer penyimpanan objek
Untuk membuat manifes objek, buat file CSV yang kolom pertamanya berisi nama objek relatif terhadap nama bucket dan jalur yang ditentukan dalam pembuatan tugas transfer. Semua objek harus berada di dalam 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 pembuatan 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 dalam Membuat daftar URL.
Memublikasikan 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.
Agen layanan yang menjalankan
transfer harus memiliki izin storage.objects.get
untuk bucket yang berisi
manifes. Lihat bagian Memberikan izin yang diperlukan untuk mendapatkan petunjuk tentang cara menemukan ID agen layanan dan memberikan izin kepada agen layanan tersebut pada bucket.
Untuk mendapatkan petunjuk tentang cara mengupload manifes ke bucket, baca artikel 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 keterangan:
MANIFEST.CSV
adalah jalur lokal ke file manifes 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 setiap akun layanan yang mengakses manifes telah mendapatkan 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 terpasang.
Memulai transfer
Jangan ubah file manifes hingga operasi transfer selesai. Sebaiknya kunci file manifes saat transfer dilakukan.
Cloud Console
Untuk memulai transfer dengan manifes dari Konsol Cloud:
Ikuti petunjuk dalam Membuat transfer untuk memilih sumber, tujuan, dan opsi Anda.
Pada langkah terakhir, Choose settings, pilih kotak centang bernama Provide list of files to transfer via manifest file.
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 dalam 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 sistem file SOURCE, termasuk jalur apa pun yang telah ditentukan:
--manifest-file=source://relative_path/sample_manifest.csv
Jalur relatif dari sistem file DESTINATION, termasuk jalur apa pun yang telah ditentukan:
--manifest-file=destination://relative_path/sample_manifest.csv
REST + Library klien
REST
Untuk mentransfer file atau objek yang tercantum dalam manifes, buat
panggilan API createTransferJob
yang menentukan
transferSpec
dengan
kolom transferManifest
yang ditambahkan. 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 awalan gs://
dan menyertakan jalur lengkapnya, termasuk nama bucket. Lokasi sistem file harus menggunakan awalan source://
atau
destination://
dan bersifat relatif terhadap sumber
atau tujuan sistem file, serta direktori utama opsional.
Go
Java
Node.js
Python
Objek atau file dalam manifes tidak selalu ditransfer dalam urutan yang tercantum.
Jika manifes menyertakan file yang sudah ada di tujuan, file tersebut akan dilewatkan kecuali jika opsi timpa objek yang sudah ada di sink ditentukan.
Jika manifes menyertakan objek yang ada dalam versi berbeda di tujuan, objek di tujuan akan ditimpa dengan versi sumber objek tersebut. Jika tujuannya adalah bucket berversi, versi baru objek akan dibuat.
Langkah selanjutnya
- Pelajari cara memfilter objek dari transfer.
- Pelajari cara menjadwalkan tugas transfer.