Digital Transformation
Signed URL
TL;DR: Signed URL adalah tautan ke sebuah file yang dibubuhi tanda tangan kriptografis dan masa berlaku (misalnya 60 menit). Setelah kedaluwarsa, tautan tidak bisa lagi dipakai. Pola ini umum untuk membagikan file privat di cloud storage tanpa harus menjadikannya publik.
Apa itu Signed URL?
Signed URL adalah URL biasa yang ditambahi parameter tanda tangan dan waktu kedaluwarsa, sehingga server bisa memverifikasi bahwa permintaan itu sah dan masih berlaku. Analoginya seperti tiket bioskop: berlaku untuk satu sesi, pada jam tertentu, dan tidak bisa dipakai lagi setelah lewat. Berbeda dengan file publik yang bisa diakses siapa saja selamanya, signed URL memberi akses yang spesifik dan sementara. Konsep ini sering muncul berdampingan dengan API dan mekanisme rate limiting pada layanan penyimpanan modern.
Cara Kerja Singkat
| Tahap | Yang terjadi |
|---|---|
| Permintaan | Aplikasi minta tautan untuk file privat tertentu |
| Penandatanganan | Server membuat signature dari path, waktu, dan secret key |
| Distribusi | Tautan dikirim ke pengguna (email, halaman, unduhan) |
| Verifikasi | Saat diklik, storage mengecek signature dan masa berlaku |
| Kedaluwarsa | Setelah lewat waktu, tautan ditolak otomatis |
Kenapa Penting?
Bagi pebisnis Indonesia yang menjual produk digital, ebook, atau materi berbayar, signed URL menjaga agar file tidak bocor lewat tautan yang disebar ulang. Pembeli tetap mendapat akses praktis, sementara aset tetap terlindungi. Pola ini juga membantu menekan biaya bandwidth karena akses terbatas pada yang berhak. Praktik penyimpanan privat semacam ini didokumentasikan dengan baik pada Supabase Storage.
Pertanyaan Umum
Apakah signed URL aman dibagikan?
Relatif aman karena berbatas waktu. Namun selama belum kedaluwarsa, siapa pun yang memegang tautan bisa mengakses file, jadi atur masa berlaku sesingkat yang masuk akal.
Bedanya dengan file publik?
File publik dapat diakses tanpa batas oleh siapa saja. Signed URL hanya berlaku untuk jangka waktu tertentu dan bisa dicabut dengan mengganti secret key.