PDSClient menyediakan dua metode untuk mengunduh satu file: downloadFile dan createDownloadTask. Topik ini menjelaskan cara menggunakan kedua metode tersebut untuk mengunduh file dari Photo and Drive Service (PDS).
Mengunduh file pada klien web:
Karena batasan API browser, kesalahan mungkin dilaporkan jika cache browser tidak mencukupi dan sulit untuk mengidentifikasi penyebab spesifiknya. Oleh karena itu, disarankan untuk tidak menggunakan metode downloadFile atau createDownloadTask untuk mengunduh file pada klien web.
Disarankan untuk menggunakan metode berikut dalam mengunduh file pada klien web:
Mengunduh satu file
Gunakan metode listFiles atau getFile untuk mendapatkan nilai parameter
download_urldalam objekIFileItem. Buka URL unduhan di browser untuk mengunduh file. Metode ini cocok untuk pengunduhan satu file, bukan beberapa file atau file dalam direktori.Mengunduh beberapa file atau file dalam direktori
Telusuri secara rekursif semua file dalam daftar file atau direktori untuk mendapatkan nilai parameter
download_urluntuk setiap file. Unduh file di frontend dan hasilkan paketZIP. Metode ini cocok untuk pengunduhan beberapa file atau file dalam direktori. Namun, metode ini membutuhkan banyak memori dan tidak cocok untuk pengunduhan file besar atau direktori.
Metode downloadFile
Cara mudah untuk mengunduh file.
Kata kunci await dapat digunakan untuk menunggu hingga pengunduhan selesai.
Jika nilai parameter
stateadalahstopped,cancelled, atauerror, makaPDSErrordilemparkan.
const cp = await client.downloadFile(pdsFile, downloadTo, options)Contoh
// from
const pdsFile= {
drive_id: '1',
file_id: 'xxxxxxxx',
}
// to (Catatan: Jika Anda mengunduh file di browser, Anda tidak perlu menentukan parameter ini. Dalam hal ini, gunakan string kosong.)
const downloadTo = '/Users/test/a.txt'
const options = {
onProgress(state, progress){
console.log(state, progress)
}
}
// Unduh file.
await client.downloadFile(pdsFile, downloadTo, options);
console.log('Pengunduhan selesai.');Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
pdsFile | Partial<IDownCheckpoint> | Ya | File yang akan diunduh, atau informasi titik kontrol unduhan. |
downloadTo | string | Ya | Path tempat file akan diunduh. Jika Anda mengunduh file di browser, Anda tidak perlu menentukan parameter ini. Dalam hal ini, gunakan string kosong. |
options | IDownloadOptions | Konfigurasi unduhan, termasuk metode callback. |
Parameter IDownCheckpoint
Parameter | Tipe | Diperlukan | Deskripsi |
path_type | string | Ya | Mode penyimpanan data domain. Tetapkan nilainya menjadi |
loc_id | string | ID drive atau share tempat file yang akan diunduh disimpan. Kami menyarankan Anda mengganti parameter ini dengan parameter | |
loc_type | string | Tipe lokasi file yang akan diunduh. Parameter ini digunakan bersama dengan parameter | |
file_key | string | Pengenal unik file yang akan diunduh. Anda harus menentukan salah satu dari parameter file_key dan file_id. | |
drive_id | string | ID drive. Anda hanya dapat menentukan salah satu dari parameter | |
share_id | string | ID share. Anda hanya dapat menentukan salah satu dari parameter | |
file_id | string | ID file yang akan diunduh. Anda harus menentukan salah satu dari parameter file_key dan file_id. | |
file | IFile | Ya | File yang akan diunduh. |
id | string | ID tugas unduhan. | |
download_id | string | ID unduhan. Ini adalah ID yang dihasilkan jika file sementara lokal dibuat. | |
download_url | string | URL unduhan. | |
content_md5 | string | Nilai hash MD5 dari file. | |
crc64ecma | string | Nilai CRC-64 dari file. | |
content_type | string | Tipe konten dari file. | |
part_info_list | Array<IDownPartInfo> | Daftar bagian yang diunduh. | |
state | string | Status tugas unduhan. Nilai valid: | |
message | string | Pesan kesalahan. | |
progress | number | Kemajuan tugas unduhan. Nilai valid: 0 hingga 100. | |
loaded | number | Jumlah byte yang telah diunduh. Unit: | |
start_time | number | Waktu ketika tugas unduhan dimulai. Unit: | |
end_time | number | Waktu ketika tugas unduhan berakhir. Unit: | |
used_avg_speed | number | Kecepatan rata-rata pengunduhan file. Unit: | |
used_time_len | number | Periode waktu yang telah dihabiskan untuk tugas unduhan. Unit: |
Anda hanya dapat menentukan salah satu dari parameter berikut:
loc_id together with loc_type,share_id, and drive_id.Anda harus menentukan salah satu dari parameter
file_keydanfile_id.
Parameter IDownloadOptions (extends IDownConfig)
Parameter | Tipe | Diperlukan | Deskripsi |
onReady | (task: UploadTask) => void | Metode callback untuk tugas unduhan setelah tugas dibuat. | |
onProgress | (state: string, progress:number) => void | Metode callback yang digunakan untuk mendengarkan kemajuan tugas. Anda dapat menggunakan metode ini untuk mendengarkan kemajuan pengunduhan dan kemajuan perhitungan nilai CRC-64. Nilai valid dari Nilai valid dari | |
onStateChange | (cp: IDownCheckpoint, state: string, error?: PDSError) => void | Metode callback yang digunakan untuk mendengarkan perubahan status tugas. Nilai valid dari | |
onPartComplete | (cp:IDownCheckpoint, part: IPartInfo) => void | Metode callback yang digunakan untuk mendengarkan penyelesaian pengunduhan bagian. | |
... Parameter IDownConfig lainnya | Parameter lainnya. |
Parameter IDownPartInfo
Parameter | Tipe | Diperlukan | Deskripsi |
part_number | number | Ya | Nomor urut bagian. Nomor dimulai dari 1. |
part_size | number | Ya | Ukuran bagian. |
Parameter IDownConfig
Parameter | Tipe | Diperlukan | Deskripsi |
verbose | boolean | Menentukan apakah akan menampilkan log debug. | |
checking_crc | boolean | Menentukan apakah akan melakukan verifikasi cyclic redundancy check (CRC). Nilai default: | |
chunk_con_auto | boolean | Menentukan apakah akan menyesuaikan jumlah bagian konkuren yang sedang diunduh secara otomatis. | |
init_chunk_con | number | Jumlah bagian konkuren kustom untuk diunduh. Parameter ini hanya berlaku jika Anda menetapkan parameter | |
max_chunk_size | number | Ukuran bagian. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
cp | IDownCheckpoint | Ya | Informasi titik kontrol tugas unduhan. Dalam hal ini, tugas unduhan mungkin berada dalam status |
Metode createDownloadTask
Membuat tugas unduhan.
const task = client.createDownloadTask(checkpoint, configs)Contoh
const cp = {
// to
file: {
name: "a.txt",
path: "/Users/zu/a.txt", // Catatan: Jika Anda mengunduh file di browser, Anda tidak perlu menentukan parameter ini.
size: 100,
},
// from
path_type: 'StandardMode',
// loc_type: 'drive',
// loc_id: '1', // Parameter ini dapat diganti dengan parameter drive_id.
// file_key: 'xxxxxxxx' // Parameter ini dapat diganti dengan parameter file_id.
drive_id: '1',
file_id: 'xxxxxxxx'
};
const task = client.createDownloadTask(cp);Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IDownCheckpoint | Ya | Parameter yang digunakan untuk membuat tugas unduhan. |
configs | IDownConfig | Konfigurasi unduhan. |
Parameter respons
Sebuah instance DownloadTask dikembalikan.
Parameter | Tipe | Diperlukan | Deskripsi |
task | DownloadTask | Ya | Tugas unduhan. |
Kelas DownloadTask
Membuat tugas unduhan untuk mengunduh file.
Metode yang didukung
.wait()
Setelah memanggil metode ini, tugas unduhan masuk ke status menunggu. Nilai parameter state berubah menjadi waiting.
.start()
Anda dapat memanggil metode ini untuk memulai tugas unduhan. Setelah memanggil metode ini, bagian konkuren mulai diunduh.
task.start();.stop()
Anda dapat memanggil metode ini untuk menghentikan tugas unduhan. Setelah memanggil metode ini, nilai parameter state berubah menjadi stopped. Dalam hal ini, instance klien menyimpan informasi titik kontrol untuk pengunduhan lanjutan berikutnya.
task.stop();.cancel()
Anda dapat memanggil metode ini untuk membatalkan tugas unduhan. Setelah memanggil metode ini, nilai parameter state berubah menjadi cancelled.
task.cancel().getCheckpoint()
Anda dapat memanggil metode ini untuk menanyakan informasi titik kontrol tugas unduhan. Selain memanggil metode ini, Anda dapat menanyakan informasi titik kontrol menggunakan callback event.
var cp = task.getCheckpoint().on(eventname, callback)
Anda dapat memanggil metode ini untuk mengonfigurasi pendengar.
// Contoh
task.on('progress', (state, progress)=>{
console.log(state, progress)
})Parameter Permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
eventname | string | Ya | Nama event. Nilai valid: |
callback | Function | Ya | Metode callback. |
Event yang didukung
Anda dapat mendengarkan event berikut: progress, statechange, dan partialcomplete.
Metode callback untuk event progress
task.on('progress', (state, progress)=>{
})Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
state | string | Ya | Status tugas unduhan. Nilai valid dari |
progress | number | Ya | Kemajuan tugas unduhan. Nilai valid: 0 hingga 100. |
Metode callback untuk event statechange
task.on('statechange', (checkpoint, state, error)=>{
})Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IDownCheckpoint | Ya | Informasi titik kontrol tugas unduhan. |
state | string | Ya | Status tugas unduhan. Nilai valid: |
error | PDSError | Kesalahan unduhan. Nilai mungkin dikembalikan jika statusnya adalah |
Metode callback untuk event partialcomplete
task.on('partialcomplete', (checkpoint, partInfo)=>{
})Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IDownCheckpoint | Ya | Informasi titik kontrol tugas unduhan. |
partInfo | IDownPartInfo | Ya | Informasi tentang bagian yang telah diunduh. |
Status
Tabel berikut menjelaskan kemungkinan status tugas unduhan.
Status | Deskripsi |
waiting | Tugas unduhan sedang menunggu untuk dimulai. Secara default, tugas unduhan masuk ke status ini setelah dibuat. Anda dapat memanggil metode |
start | Tugas unduhan dimulai. Anda dapat memanggil metode |
created | Tugas unduhan dibuat. Status ini dipicu setelah file sementara lokal dibuat. |
running | Tugas unduhan sedang berlangsung. |
stopped | Tugas unduhan dihentikan. |
complete | Tugas unduhan selesai tetapi file belum diverifikasi. |
checking | Verifikasi |
success | Tugas unduhan berhasil. |
error | Tugas unduhan gagal. Status ini dipicu jika pemanggilan operasi API gagal, koneksi jaringan gagal, atau operasi I/O lokal gagal selama proses unduhan. |
cancelled | Tugas unduhan dibatalkan. Anda dapat memanggil metode |
Parameter yang mungkin digunakan
Parameter | Tipe | Deskripsi |
speed | number | Kecepatan unduhan. Unit: |
progress | number | Kemajuan tugas unduhan. Nilai valid: 0 hingga 100. |
loaded | number | Ukuran bagian yang telah diunduh. Unit: |
file | IFile | Informasi tentang file. |
left_time | number | Periode waktu perkiraan yang diperlukan untuk bagian yang tersisa. Unit: |
start_time | number | Waktu ketika tugas unduhan dimulai. Unit: |
end_time | number | Waktu ketika tugas unduhan berakhir. Unit: |
used_avg_speed | number | Kecepatan unduhan rata-rata. Unit: |
used_time_len | number | Durasi unduhan. Unit: |