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 A penandatanganan.
Cara kerjanya
Cara sebuah URL ditandatangani berdasarkan tipe A
http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hashBidang dalam URL yang ditandatangani
Bidang | Deskripsi |
DomainName | Nama domain untuk ApsaraVideo VOD. |
Filename | URL sebenarnya yang menunjuk ke sumber daya yang diminta pada server asal. Nilai bidang Filename harus dimulai dengan garis miring ( |
auth_key | Kunci kriptografi yang Anda tentukan. |
timestamp | Waktu ketika URL yang ditandatangani dihasilkan. Timestamp dan periode validitas default menentukan waktu kedaluwarsa URL yang ditandatangani. Waktu dalam UTC+8 dan mengikuti format YYYYMMDDHHMM. Catatan Dalam banyak 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 di server penandatanganan + Periode validitas yang dikonfigurasikan di server penandatanganan. Periode validitas = Timestamp + Periode validitas default. |
rand | Angka acak. Dalam banyak kasus, nilai bidang ini diatur ke 0. Jika Anda ingin menghasilkan URL yang berbeda setiap kali, kami sarankan Anda menggunakan UUID. Nilainya tidak boleh mengandung tanda hubung ( |
uid | ID pengguna. Atur bidang ini ke 0. |
md5hash | String yang dihitung menggunakan algoritma MD5. String tersebut harus memiliki panjang 32 karakter dan dapat berisi angka serta huruf kecil.
|
Logika penandatanganan
Ketika titik kehadiran CDN Alibaba Cloud (POP) 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 berbeda, autentikasi gagal. POP mengembalikan kode status HTTP 403.
Jika kedua nilai sama, permintaan lolos autentikasi. POP mengembalikan sumber daya yang diminta.
CatatanJika permintaan lolos autentikasi, parameter spesifik autentikasi dihapus dari URL untuk meningkatkan rasio hit cache dan mengurangi lalu lintas asal.
Format URL dalam permintaan balik ke asal adalah
http://DomainName/FileName.Format URL yang digunakan untuk menghasilkan kunci cache adalah
http://DomainName/FileName.
Contoh penggabungan URL yang ditandatangani
Contoh berikut menunjukkan cara mengimplementasikan Tipe A penandatanganan.
Kondisi contoh
Ambil objek dari server asal:
http://example.aliyundoc.com/video/standard/test.mp4CatatanJika URL objek yang Anda ambil dari server asal mengandung karakter Cina, Anda harus mengkodekan URL sebelum menggabungkan URL yang ditandatangani.
Atur PrivateKey menjadi aliyunvodexp1234.
Konversikan timestamp ketika URL yang ditandatangani dihasilkan pada 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./video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234Hitung nilai
md5hashberdasarkan string tanda tangan.HashValue = md5sum("/video/standard/test.mp4-1627747200-0-0-aliyunvodexp1234") = 0e9048c8c7de46b6015618f42de7****Hasilkan URL yang ditandatangani.
http://example.aliyundoc.com/video/standard/test.mp4?auth_key=1627747200-0-0-0e9048c8c7de46b6015618f42de7****
Jika klien menggunakan URL yang ditandatangani untuk meminta sumber daya, POP membandingkan nilai md5hash yang dihitung dengan nilai md5hash dalam permintaan. Jika kedua nilai sama, seperti 0e9048c8c7de46b6015618f42de7****, permintaan lolos autentikasi. Jika tidak, autentikasi gagal.