Storage Transfer Service mendukung transfer file atau objek tertentu, yang ditentukan menggunakan manifest. 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 di Membuat daftar URL karena format manifes unik untuk daftar URL.
Membuat manifes
Manifes harus diformat sebagai CSV dan dapat berisi karakter UTF-8 apa pun. Kolom pertama harus berupa nama file atau nama objek yang ditentukan sebagai string.
File manifes tidak mendukung karakter pengganti. Nilainya harus berupa nama file atau objek tertentu. Nama folder tanpa nama file atau objek tidak didukung.
Ukuran file manifes maksimum adalah 1 GiB, yang berarti sekitar 1 juta baris. Jika perlu mentransfer file manifes yang berukuran lebih 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 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 pada sistem file, buat file CSV dengan satu kolom yang berisi jalur file relatif terhadap direktori root yang ditentukan dalam pembuatan tugas transfer.
Misalnya, Anda mungkin ingin 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 yang terkait dengan nama bucket dan jalur yang ditentukan dalam pembuatan tugas transfer. Semua objek harus berada 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 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.
Memublikasikan manifes
Setelah membuat manifes, Anda harus menyediakannya ke 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 ke
agen layanan tersebut di bucket.
Untuk 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 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 akun layanan yang mengakses manifes telah diberi kunci enkripsi yang berlaku. Kunci yang disediakan pelanggan tidak didukung.
Menyimpan manifes di 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 sedang berlangsung.
Cloud Console
Untuk memulai transfer dengan manifes dari konsol Cloud:
Ikuti petunjuk di Membuat transfer untuk memilih sumber, tujuan, dan opsi.
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 sistem file SOURCE, termasuk jalur yang ditentukan:
--manifest-file=source://relative_path/sample_manifest.csv
Jalur relatif dari sistem file DESTINATION, termasuk jalur apa pun yang 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 lengkap, termasuk nama
bucket. Lokasi sistem file harus menggunakan awalan source://
atau
destination://
dan bersifat relatif terhadap sumber atau tujuan sistem file, dan direktori utama 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 overwrite objects already existing in 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 dengan versi, versi baru objek akan dibuat.
Langkah selanjutnya
- Pelajari cara memfilter objek dari transfer.
- Pelajari cara menjadwalkan tugas transfer.