全部产品
Search
文档中心

ApsaraVideo VOD:Signing Tipe C

更新时间:Jun 21, 2025

ApsaraVideo VOD memungkinkan Anda menggunakan fitur penandatanganan URL untuk melindungi konten asal dari unduhan dan akses tidak sah. Fitur ini mendukung tiga jenis penandatanganan. Topik ini menjelaskan cara kerja signing tipe C.

Cara kerjanya

Cara sebuah URL ditandatangani berdasarkan tipe C

  • Format 1

    http://DomainName/{<md5hash>/<timestamp>}/NamaFile
  • Format 2

    http://DomainName/NamaFile?{KEY1=<md5hash>&KEY2=<timestamp>}
null

Konten dalam kurung kurawal ({}) menunjukkan informasi terenkripsi yang ditambahkan ke URL standar.

Bidang dalam URL yang ditandatangani

Bidang

Deskripsi

DomainName

Nama domain untuk ApsaraVideo VOD.

PrivateKey

Kunci utama atau kunci sekunder yang dikonfigurasi di konsol ApsaraVideo VOD. Untuk informasi lebih lanjut, lihat Aktifkan dan konfigurasikan penandatanganan URL.

NamaFile

URL sebenarnya yang menunjuk ke sumber daya yang diminta pada server asal. Nilai bidang NamaFile harus dimulai dengan garis miring (/).

timestamp

Waktu ketika URL yang ditandatangani dibuat. Timestamp dan periode validitas default menentukan waktu kedaluwarsa URL yang ditandatangani. Timestamp mengikuti format waktu UNIX. Ini adalah jumlah detik yang telah berlalu sejak pukul 00:00:00 Kamis, 1 Januari 1970. Timestamp adalah string yang terdiri dari 10 bilangan bulat desimal positif dan tidak bergantung pada zona waktu. String desimal tersebut diubah menjadi string heksadesimal.

null

Dalam kebanyakan kasus, URL yang ditandatangani kedaluwarsa setelah periode validitas default yang Anda tentukan di ApsaraVideo VOD berakhir. Jika Anda menentukan periode validitas untuk URL yang ditandatangani di server penandatanganan, timestamp dan periode validitas URL yang ditandatangani dihitung berdasarkan rumus berikut: Timestamp = Timestamp UNIX di server penandatanganan + Periode validitas yang dikonfigurasi di server penandatanganan. Periode validitas = Timestamp + Periode validitas default.

md5hash

String yang dihitung menggunakan algoritma MD5. String tersebut harus memiliki panjang 32 karakter dan dapat berisi angka serta huruf kecil.

Nilai md5hash dihitung menggunakan metode berikut:

sstring = "Privatekey+URI+timestamp" (URI menentukan alamat yang menunjuk ke sumber daya yang diminta. URI tidak berisi parameter seperti /NamaFile.)
md5hash = md5sum(sstring)

Logika penandatanganan

Ketika titik kehadiran (POP) CDN Alibaba Cloud menerima permintaan, POP memeriksa apakah waktu yang dihitung dengan menambahkan nilai timestamp dan periode validitas default lebih awal dari waktu saat ini.

  • Jika waktu yang dihitung dengan menambahkan nilai timestamp dan periode validitas default lebih awal dari waktu saat ini, POP menentukan bahwa URL telah kedaluwarsa dan mengembalikan kode status HTTP 403.

  • Jika waktu yang dihitung dengan menambahkan timestamp dan periode validitas default lebih lambat dari waktu saat ini, POP menghasilkan string berdasarkan sstring yang dijelaskan dalam tabel sebelumnya. Kemudian, POP menggunakan algoritma MD5 untuk menghitung nilai md5hash dan membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan.

    • Jika nilainya sama, permintaan lulus autentikasi. POP mengembalikan sumber daya yang diminta.

      null

      Jika permintaan lulus autentikasi, parameter penandatanganan URL dihapus dari URL untuk meningkatkan rasio hit cache dan mengurangi lalu lintas kembali ke asal.

      • Untuk URL yang ditandatangani dalam Format 1 atau Format 2, format URL yang digunakan untuk menghasilkan kunci cache adalah http://DomainName/NamaFile.

      • Untuk URL yang ditandatangani dalam Format 1 atau Format 2, format URL dalam permintaan asal adalah http://DomainName/NamaFile.

    • Jika kedua nilai tersebut berbeda, permintaan gagal autentikasi. POP mengembalikan kode status HTTP 403.

Contoh

Contoh berikut menunjukkan cara mengimplementasikan signing tipe C.

Kondisi sampel

  • Ambil objek dari server asal:

    http://domain.example.com/test.flv
    null

    Jika URL objek yang diminta berisi karakter Cina, Anda perlu mengkodekan URL sebelum menggabungkan URL yang ditandatangani.

    • URL Asli: https://example.com/image/阿里云.jpg

    • URL Terkode: https://example.com/image/%E9%98%BF%E9%87%8C%E4%BA%91.jpg

  • Tetapkan PrivateKey ke aliyuncdnexp1234.

  • Tetapkan timestamp ke 55CE8100.

Prosedur penggabungan

  1. Hasilkan string tanda tangan yang digunakan untuk menghitung nilai md5hash.

    aliyuncdnexp1234/test.flv55CE8100
  2. Hitung nilai md5hash berdasarkan string tanda tangan.

    md5hash = md5sum(aliyuncdnexp1234/test.flv55CE8100) = a37fa50a5fb8f71214b1e7c95ec7a1bd
  3. Hasilkan URL yang ditandatangani.

    • Format 1:

      http://domain.example.com/a37fa50a5fb8f71214b1e7c95ec7a1bd/55CE8100/test.flv
    • Format 2:

      http://domain.example.com/test.flv?KEY1=a37fa50a5fb8f71214b1e7c95ec7a1bd&KEY2=55CE8100

Jika klien menggunakan URL yang ditandatangani untuk meminta sumber daya, POP membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan. Jika nilainya sama, seperti a37fa50a5fb8f71214b1e7c95ec7a1bd, dan URL yang ditandatangani berada dalam periode validitas, permintaan lulus autentikasi. Jika tidak, autentikasi gagal.