PDSClient menyediakan dua metode untuk mengunggah file: uploadFile dan createUploadTask. Topik ini menjelaskan kedua metode tersebut.
Metode uploadFile
Mengunggah file dengan cara yang mudah.
Kata kunci
awaitdapat digunakan untuk menunggu hingga file selesai diunggah.Jika nilai dari
stateadalahstopped,cancelled, atauerror, makaPDSErrorakan dilemparkan.
// client menunjukkan instance PDSClient.
const cp = await client.uploadFile(from, uploadTo, options)Contoh
<input type="file" id="f1"/>
<script>
document.getElementById('f1').onchange = async function(e){
let file = e.target.files[0];
let uploadTo = {drive_id: '1', parent_file_id: 'root'};
await client.uploadFile(file, uploadTo);
console.log("Diunggah");
}
</script>Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
file | IFile | string | Ya | File yang akan diunggah. Jika Anda ingin mengunggah file di browser web, tentukan file HTML yang ingin Anda unggah. Jika Anda ingin mengunggah file di lingkungan Node.js, atur nilainya ke jalur file lokal atau informasi jalur lokal. |
uploadTo | IUpCheckpoint | Ya | Informasi tentang direktori Drive and Photo Service (PDS) tempat file akan diunggah. Anda juga dapat mengatur nilainya ke informasi checkpoint terakhir. |
options | IUploadOptions | Konfigurasi pengunggahan, termasuk metode callback. |
Bidang IFile
Bidang | Tipe | Diperlukan | Deskripsi |
path | string | Ya | Jalur. |
name | string | Ya | Nama file. |
size | number | Ya | Ukuran file. |
type | string |
|
Bidang IUpCheckpoint
Bidang | Tipe | Diperlukan | Deskripsi |
file | IFile | Ya | File yang akan diunggah. Jika Anda ingin mengunggah file di browser web, tentukan file HTML yang ingin Anda unggah. Jika Anda ingin mengunggah file di lingkungan Node.js, atur nilainya ke informasi jalur lokal. |
path_type | string | Ya |
|
loc_id | string | ID lokasi tempat file akan diunggah. Bisa berupa | |
loc_type | string | Tipe lokasi tempat file akan diunggah. Nilai valid: | |
parent_file_key | string | ID direktori tempat file akan diunggah. Kami sarankan Anda mengganti parameter ini dengan parameter | |
drive_id | string | ID drive direktori tempat file akan diunggah. Anda harus menentukan salah satu parameter | |
share_id | string | ID share direktori tempat file akan diunggah. Anda harus menentukan salah satu parameter | |
parent_file_id | string | ID direktori induk tempat file akan diunggah. | |
new_name | string | Nama baru yang akan digunakan untuk file yang diunggah. Parameter ini mungkin dipengaruhi oleh parameter | |
id | string | ID tugas unggah. | |
file_key | string | ID file yang akan diunggah. Kami sarankan Anda mengganti parameter ini dengan parameter file_id. | |
update_id | string | ID unggah. ID ini dibuat setelah PDS membuat file sementara. | |
part_info_list | Array<IUpPartInfo> | Daftar bagian yang akan diunggah. | |
state | string | Status tugas unggah. Nilai valid: | |
message | string | Pesan kesalahan. | |
progress | number | Progres unggah. Nilai valid: 0 hingga 100. | |
loaded | number | Jumlah byte yang telah diunggah. Unit: | |
chunk_size | number | Ukuran sebuah bagian. Unit: | |
start_time | number | Waktu mulai tugas unggah. Unit: | |
end_time | number | Waktu akhir tugas unggah. Unit: | |
used_avg_speed | number | Kecepatan rata-rata saat file diunggah. Unit: | |
used_time_len | number | Jangka waktu yang telah berlalu sejak dimulainya tugas unggah. Unit: |
Anda harus menentukan
loc_id + loc_typeataushare_id || drive_id.Anda harus menentukan
parent_file_keyatauparent_file_id.
Bidang IUploadOptions (memperluas IUpConfig)
Bidang | Tipe | Diperlukan | Deskripsi |
onReady | (task: UploadTask) => void | Metode callback untuk | |
onProgress | (state: string, progress:number) => void | Metode callback yang digunakan untuk mendengarkan progres. Anda dapat menggunakan metode ini untuk mendengarkan progres perhitungan nilai hash SHA-1, progres unggah, atau progres perhitungan nilai CRC-64. Nilai valid dari Nilai valid dari | |
onStateChange | (cp: IUpCheckpoint, state: string, error?: PDSError) => void | Metode callback yang digunakan untuk mendengarkan perubahan status tugas. Nilai valid dari state: | |
onPartComplete | (cp:IUpCheckpoint, part: IPartInfo) => void | Metode callback yang digunakan untuk mendengarkan penyelesaian unggah bagian. | |
... Bidang IUpConfig lainnya |
Bidang IUpPartInfo
Bidang | Tipe | Diperlukan | Deskripsi |
part_number | number | Ya | Nomor urutan bagian. Nomor dimulai dari 1. |
part_size | number | Ya | Ukuran bagian. |
etag | string |
|
Bidang IUpConfig
Bidang | Tipe | Diperlukan | Deskripsi |
parallel_upload | boolean | Menentukan apakah akan mengunggah bagian secara bersamaan. Nilai default: | |
check_name_mode | string | Kebijakan yang digunakan ketika file baru memiliki nama yang sama dengan file yang sudah ada. Nilai valid:
| |
checking_crc | boolean | Menentukan apakah akan melakukan verifikasi CRC. Nilai default: | |
chunk_con_auto | boolean | Menentukan apakah akan menyesuaikan jumlah bagian yang diunggah secara bersamaan. | |
init_chunk_con | number | Jumlah kustom bagian yang diunggah secara bersamaan. Bidang ini hanya berlaku jika | |
max_chunk_size | number | Ukuran bagian. | |
ignore_rapid | boolean | Menentukan apakah akan memaksa menonaktifkan transfer file instan. Nilai default: |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
cp | IUpCheckpoint | Ya | Informasi checkpoint dari tugas unggah. Status valid termasuk |
Metode createUploadTask
Membuat tugas unggah.
const task = client.createUploadTask(checkpoint, configs)Contoh
<input type="file" id="f1"/>
<script>
document.getElementById('f1').onchange = async function(e){
let file = e.target.files[0];
let cp = {
// from
file,
// to
path_type: "StandardMode",
// loc_id: "1", // Anda bisa mengganti parameter ini dengan parameter drive_id.
// loc_type: "drive",
// parent_file_key: "root", // Anda bisa mengganti parameter ini dengan parameter parent_file_id.
drive_id: "1",
parent_file_id: "root"
};
// Buat tugas unggah.
const task = client.createUploadTask(cp);
// Dengarkan progres unggah.
task.on('progress', (state, progress)=>{
console.log(state, progress);
});
// Mulai tugas unggah.
task.start();
// ...
}
</script>Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IUpCheckpoint | Ya | Atribut unggah. |
configs | IUpConfig | Konfigurasi unggah. |
Parameter respons
Parameter | Tipe | Diperlukan | Deskripsi |
task | UploadTask | Ya | Instance UploadTask. |
Kelas UploadTask
Membuat tugas untuk mengunggah file.
Metode yang didukung
.wait()
Setelah Anda memanggil metode ini, status tugas berubah menjadi menunggu.
.start()
Anda dapat memanggil metode ini untuk memulai tugas unggah. Setelah tugas dimulai, sistem mulai menghitung nilai hash SHA-1. Jika file diunggah secara instan, pesan dikembalikan yang menunjukkan transfer file instan berhasil. Jika file tidak dapat diunggah secara instan, sistem mulai mengunggah file dalam bagian-bagian. Parameter config.parallel_upload menentukan apakah akan mengunggah bagian secara bersamaan.
task.start();.stop()
Anda dapat memanggil metode ini untuk menangguhkan tugas unggah. state tugas akan berubah menjadi stopped, dan instance klien akan menyimpan informasi checkpoint untuk digunakan dalam unggah berkelanjutan berikutnya.
task.stop();.cancel()
Anda dapat memanggil metode ini untuk membatalkan tugas unggah. Status tugas berubah menjadi dibatalkan.
task.cancel().getCheckpoint()
Anda dapat memanggil metode ini untuk menanyakan informasi checkpoint dari tugas unggah. Sebagai alternatif, Anda dapat menanyakan informasi checkpoint tugas menggunakan callback event.
IUpCheckpoint cp = task.getCheckpoint().on(eventname, callback)
Anda dapat memanggil metode ini untuk mengonfigurasi pendengar.
// Contoh: event progres
task.on('progress', (state, progress)=>{
console.log(state, progress)
})Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
eventname | ICheckpoint | Ya | Nama event. Nilai valid: |
callback | Function | Ya | Fungsi callback. |
Event yang didukung
Metode callback untuk event progres
Anda dapat mendengarkan event jenis berikut: progress, statechange, dan partialcomplete.
task.on('progress', (state, progress)=>{
//
})Parameter
Parameter | Tipe | Diperlukan | Deskripsi |
state | string | Ya | Status tugas. Nilai valid: |
progress | number | Ya | Progres unggah. Nilai valid: 0 hingga 100. |
Metode callback untuk event statechange
task.on('statechange', (checkpoint, state, error)=>{
//
})Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IUpCheckpoint | Ya | Informasi checkpoint dari tugas unggah. |
state | string | Ya | Status tugas unggah. Nilai valid: |
error | PDSError | Kesalahan unggah. Nilai dikembalikan jika status tugas adalah |
Metode callback untuk event partialcomplete
task.on('partialcomplete', (checkpoint, partInfo)=>{
//
})Parameter | Tipe | Diperlukan | Deskripsi |
checkpoint | IUpCheckpoint | Ya | Informasi checkpoint dari tugas unggah. |
partInfo | IUpPartInfo | Ya | Informasi tentang bagian yang diunggah. |
Status
Tugas unggah dapat berada dalam salah satu status berikut.
Status | Deskripsi |
waiting | Tugas unggah sedang menunggu untuk dimulai. Secara default, tugas unggah berada dalam status ini setelah dibuat. Anda dapat memanggil metode |
start | Tugas unggah dimulai. Anda dapat memanggil metode |
created | Tugas unggah dibuat. Status ini dipicu setelah PDS membuat file sementara. Dalam hal ini, |
computing_hash | Nilai hash
|
running | Tugas unggah sedang berjalan. |
stopped | Tugas unggah ditangguhkan. |
complete | Tugas unggah selesai tetapi file belum diverifikasi. |
checking | Pemeriksaan |
success | Tugas unggah berhasil. |
rapid_success | File diunggah secara instan. |
error | Tugas unggah gagal. Status ini dipicu jika pemanggilan operasi API gagal, koneksi jaringan gagal, atau operasi I/O lokal gagal selama proses unggah. |
cancelled | Tugas unggah dibatalkan. Anda dapat memanggil metode |
Parameter yang mungkin digunakan
// Contoh:
console.log(task.speed)Parameter | Tipe | Deskripsi |
speed | number | Kecepatan unggah. Unit: |
progress | number | Progres unggah. Nilai valid: 0 hingga 100. |
loaded | number | Ukuran bagian yang telah diunggah. Unit: |
file | IFile | Informasi tentang file. |
left_time | number | Perkiraan waktu yang diperlukan untuk mengunggah bagian yang tersisa. Unit: |
start_time | number | Waktu mulai tugas unggah. Unit: |
end_time | number | Waktu akhir tugas unggah. Unit: |
used_avg_speed | number | Kecepatan unggah rata-rata. Unit: |
used_time_len | number | Durasi unggah. Unit: |