Langsung ke konten utama

Ikhtisar

  1. Dapatkan informasi unggah file: Minta kredensial unggah dari server (URL OSS + Header tanda tangan).
  2. Unggah file ke OSS: Gunakan URL dan Header yang dikembalikan pada langkah 1 untuk melakukan PUT konten file ke OSS.
  3. Commit file: Beri tahu server bahwa unggahan telah selesai untuk memfinalisasi penyimpanan file.
Ketiga langkah harus dijalankan secara berurutan. Unggahan file tidak dapat diselesaikan jika ada langkah yang terlewat.

Langkah 1: Dapatkan informasi unggah file

Panggil API POST /v2.0/storage/spaces/files/{parentDentryUuid}/uploadInfos/query, dengan mengirimkan parentDentryUuid (pengidentifikasi unik dari direktori induk) dari direktori target dan unionId operator untuk memperoleh kredensial yang dibutuhkan untuk unggahan ini.
Untuk detail API, lihat dokumentasi Dapatkan informasi unggah file. Untuk petunjuk memanggil API, lihat dokumentasi tentang cara memanggil Server API.

Parameter permintaan utama:

  • parentDentryUuid (Path): dentryUuid dari direktori unggah target. Untuk mengunggah ke direktori root Knowledge Base, dapatkan dentryUuid direktori root dengan salah satu dari dua cara berikut:
  • unionId (Query): unionId operator. Panggil API Kueri detail pengguna untuk memperolehnya.
  • protocol (Body): Nilai tetap HEADER_SIGNATURE.
  • option.preCheckParam.name (Body): Nama file (termasuk ekstensi). Tidak boleh mengandung karakter khusus (*, ", <, >, |) dan tidak boleh diakhiri dengan ..

Parameter respons:

  • uploadKey: Pengidentifikasi unik untuk unggahan ini, digunakan pada langkah 3.
  • headerSignatureInfo.resourceUrls: URL unggah OSS, digunakan pada langkah 2.
  • headerSignatureInfo.headers: Header permintaan OSS, digunakan pada langkah 2.
  • expirationSeconds: Waktu kedaluwarsa kredensial (dalam detik). Selesaikan langkah-langkah berikutnya sebelum kedaluwarsa.
Contoh HTTP:

Langkah 2: Unggah file ke OSS

Gunakan resourceUrls[0] yang dikembalikan pada langkah 1 sebagai URL unggah dan headers sebagai header permintaan. Unggah konten file lokal langsung ke OSS melalui metode HTTP PUT.
Content-Type harus disetel secara eksplisit menjadi string kosong. Jika tidak, verifikasi tanda tangan akan gagal.
Contoh kode: Java
Python
Node.js

Langkah 3: Commit file

Setelah unggahan OSS selesai, panggil API POST /v2.0/storage/spaces/files/{parentDentryUuid}/commit untuk secara resmi menulis file ke direktori Knowledge Base dan menyelesaikan seluruh proses unggah.

Catatan

  • Panggilan API yang berhasil mengembalikan informasi file (dentry), termasuk ID file, uuid, dan ruang tempat file itu berada. Unggahan selesai.
  • Untuk detail API, lihat dokumentasi Commit file. Untuk petunjuk memanggil API, lihat dokumentasi tentang cara memanggil Server API.

Parameter permintaan utama:

  • parentDentryUuid (Path): Jaga konsistensi dengan langkah 1.
  • unionId (Query): unionId operator. Panggil API Kueri detail pengguna untuk memperolehnya.
  • uploadKey (Body): uploadKey yang dikembalikan pada langkah 1, digunakan untuk mengaitkan unggahan ini.
  • name (Body): Nama file (termasuk ekstensi).
  • option.conflictStrategy (Body): Strategi konflik nama file. Opsi: AUTO_RENAME (default, otomatis mengganti nama) atau OVERWRITE (timpa).

Contoh HTTP:

Ringkasan proses lengkap

Catatan

  • Selama unggahan pada langkah 2, Content-Type harus disetel menjadi string kosong. Jika tidak, verifikasi tanda tangan OSS akan gagal.
  • Kredensial unggah yang dikembalikan pada langkah 1 memiliki waktu kedaluwarsa (expirationSeconds). Selesaikan langkah 2 dan 3 sebelum kedaluwarsa. Jika tidak, Anda harus memanggil langkah 1 lagi.
  • Ketika tipe ruang penyimpanan adalah USER, hanya pemilik ruang dan administrator yang memiliki izin operasi. Karyawan lain harus terlebih dahulu diberi otorisasi melalui API “Tambah Izin”.
  • Ketika tipe ruang penyimpanan adalah APP, siapa pun yang melakukan operasi harus terlebih dahulu diberi otorisasi melalui API “Tambah Izin”.