Satu strategi untuk mendownload file berukuran besar disebut download objek irisan.
Dalam download tersebut, permintaan GET
dengan rentang dibuat secara paralel, sehingga menyimpan data
dalam file tujuan sementara yang telah dialokasikan sebelumnya. Setelah semua irisan
selesai didownload, file sementara akan diganti namanya menjadi file tujuan.
Download objek irisan dapat jauh lebih cepat jika kecepatan jaringan dan disk tidak membatasi faktor; namun, download objek irisan menyebabkan beberapa penulisan terjadi di berbagai lokasi pada disk, sehingga strategi download ini dapat menurunkan performa untuk disk dengan waktu pencarian yang lambat, terutama saat membagi download menjadi sejumlah besar irisan. Alat seperti Google Cloud CLI memiliki nilai default yang rendah untuk jumlah slice yang dibuat guna meminimalkan kemungkinan dampak performa.
Download objek irisan harus selalu menggunakan checksum yang dapat disusun dengan cepat (CRC32C) untuk memverifikasi integritas data irisan. Untuk menjalankan download objek yang dibagi-bagi, alat seperti gcloud CLI memerlukan versi crcmod yang dikompilasi pada mesin yang melakukan download. Jika crcmod yang dikompilasi tidak tersedia, gcloud CLI akan mendownload objek yang tidak diiris.
Cara alat dan API menggunakan download objek irisan
Bergantung pada cara Anda berinteraksi dengan Cloud Storage, download objek irisan mungkin dikelola secara otomatis untuk Anda. Bagian ini menjelaskan perilaku download objek irisan untuk berbagai alat dan memberikan informasi tentang cara mengubah perilaku tersebut.
Konsol
Konsol Google Cloud tidak menjalankan download objek irisan.
Command line
Secara default, gcloud storage cp
mengaktifkan download objek irisan.
Anda dapat mengontrol cara dan waktu gcloud CLI menjalankan download objek yang diiris dengan mengubah properti berikut:
storage/sliced_object_download_threshold
: Total ukuran file minimum untuk menjalankan download objek irisan. Anda dapat menonaktifkan semua download objek irisan dengan menetapkan nilai ini ke0
.storage/sliced_object_download_max_components
: Jumlah irisan maksimum yang akan digunakan dalam download. Tetapkan0
untuk tanpa batas, yang dalam hal ini jumlah irisan hanya ditentukan olehstorage/sliced_object_download_component_size
.storage/sliced_object_download_component_size
: Ukuran target untuk setiap download irisan. Properti ini diabaikan jika total ukuran file sangat besar sehingga download irisan dengan ukuran ini akan membutuhkan lebih banyak irisan dari yang diizinkan, seperti yang ditetapkan distorage/sliced_object_download_max_components
.
Anda dapat mengubah properti ini dengan membuat konfigurasi bernama
dan menerapkan konfigurasi tersebut per perintah menggunakan
flag lingkup project --configuration
atau untuk semua
perintah gcloud CLI dengan menggunakan
perintah gcloud config set
.
Tidak diperlukan kapasitas disk lokal tambahan saat menggunakan gcloud CLI untuk mendownload objek yang diiris. Jika download gagal sebelum selesai, jalankan lagi perintah untuk melanjutkan bagian yang gagal. Slice yang berhasil didownload sebelum kegagalan tidak akan didownload ulang saat Anda mencoba lagi, kecuali jika objek sumber telah berubah di antara upaya download.
Objek yang didownload sementara akan muncul di direktori tujuan dengan akhiran _.gstmp
sebagai namanya.
Library klien
Node.js
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Node.js API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Anda dapat menjalankan download objek irisan menggunakan
metode
downloadFileInChunks
. Contoh:
Python
Untuk mengetahui informasi selengkapnya, lihatDokumentasi referensi Cloud Storage Python API.
Untuk melakukan autentikasi ke Cloud Storage, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Anda dapat menjalankan download objek irisan menggunakan
metode
download_chunks_concurrently
. Contoh:
REST API
JSON API dan XML API mendukung permintaan GET
dengan rentang, yang
berarti Anda dapat menggunakan salah satu API untuk menerapkan strategi download objek irisan
Anda sendiri.
Untuk melindungi dari kerusakan data akibat perubahan objek sumber selama download, Anda harus memberikan nomor pembuatan objek sumber dalam setiap permintaan download untuk irisan objek.