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 tipe B penandatanganan.
Cara kerjanya
Cara sebuah URL dienkripsi berdasarkan tipe B
http://DomainName/timestamp/md5hash/FileNameBidang dalam URL yang ditandatangani
Bidang | Deskripsi |
DomainName | Nama domain untuk ApsaraVideo VOD. |
timestamp | Waktu saat URL yang ditandatangani dibuat. Timestamp dan periode validitas default menentukan waktu kedaluwarsa URL yang ditandatangani. Waktu tersebut dalam zona UTC+8 dan mengikuti format YYYYMMDDHHMM. null Dalam kebanyakan kasus, URL yang ditandatangani akan 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 = UNIX timestamp pada server penandatanganan + Periode validitas yang dikonfigurasikan pada 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. |
NamaFile | URL sebenarnya yang menunjuk ke sumber daya yang diminta di server asal. Nilai bidang NamaFile harus dimulai dengan garis miring ( |
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
timestampdanperiode validitas defaultlebih awal dari waktu saat ini, POP menentukan bahwa URL telah kedaluwarsa dan mengembalikan kode status HTTP 403.Jika waktu yang dihitung dengan menambahkan
timestampdanperiode validitas defaultlebih lambat dari waktu saat ini, POP menghasilkan string berdasarkansstringyang dijelaskan dalam tabel sebelumnya. Kemudian, POP menggunakan algoritma MD5 untuk menghitung nilaimd5hashdan membandingkan nilaimd5hashyang dihitung dengan nilaimd5hashdalam permintaan.Jika kedua nilai tersebut berbeda, autentikasi gagal. POP mengembalikan kode status HTTP 403.
Jika kedua nilai tersebut sama, permintaan lolos autentikasi. POP mengembalikan sumber daya yang diminta.
nullJika permintaan lolos autentikasi, parameter spesifik autentikasi dihapus dari URL untuk meningkatkan rasio temuan cache dan mengurangi lalu lintas asal.
Format URL dalam permintaan balik ke asal adalah
http://DomainName/NamaFile.Format URL yang digunakan untuk menghasilkan kunci cache adalah
http://DomainName/NamaFile.
Contoh
Contoh berikut menunjukkan cara mengimplementasikan tipe B penandatanganan.
Kondisi sampel
Ambil objek dari server asal:
http://example.aliyundoc.com/video/standard/test.mp4nullJika URL objek yang Anda ambil dari server asal berisi karakter Cina, Anda harus mengkodekan URL tersebut sebelum menggabungkan URL yang ditandatangani.
Set PrivateKey menjadi aliyunvodexp1234.
Konversikan timestamp ketika URL yang ditandatangani dibuat 2021-08-01 00:00:00 (UTC+8) menjadi bilangan bulat desimal 1.627.747.200.
Prosedur penggabungan
Hasilkan string tanda tangan yang digunakan untuk menghitung nilai
md5hash.aliyunvodexp12341627747200/video/standard/test.mp4Hitung nilai
md5hashmenggunakan string tanda tangan.md5hash = md5sum("aliyunvodexp12341627747200/video/standard/test.mp4") = 9044548ef1527deadafa49a890a3****Hasilkan URL yang ditandatangani.
http://example.aliyundoc.com/1627747200/9044548ef1527deadafa49a890a3****/video/standard/test.mp4
Jika klien menggunakan URL yang ditandatangani untuk meminta sumber daya, POP membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan. Jika kedua nilai tersebut sama, seperti 9044548ef1527deadafa49a890a3****, permintaan lolos autentikasi. Jika tidak, autentikasi gagal.