Mengenal Presigned URL di MinIO: Cara Aman Berbagi File Tanpa Ribet
Presigned URL adalah solusi aman untuk berbagi akses file di MinIO tanpa memberikan kredensial lengkap. Dengan batasan waktu, kamu bisa izinkan download atau upload file secara terbatas. Yuk, pelajari lebih lanjut! #MinIO #PresignedURL

Halo teman-teman! Pernah nggak sih kalian punya file di server MinIO atau Amazon S3 yang pengen dibagiin ke orang lain, tapi nggak mau ribet ngasih akses penuh ke bucket-nya? Atau mungkin kalian pengen ngasih izin upload file ke bucket, tapi cuma untuk waktu tertentu aja? Nah, di artikel ini, kita bakal bahas tentang Presigned URL, solusi simpel buat ngatasi masalah ini. Yuk, simak ceritanya!
Apa Itu Presigned URL?
Bayangkan kamu punya sebuah lemari penyimpanan (bucket) di MinIO. Di dalam lemari itu, ada banyak laci (folder) dan file-file penting (objek). Nah, suatu hari, kamu pengen ngasih temanmu akses buat ngambil atau naro file di salah satu laci itu. Tapi, kamu nggak mau ngasih kunci lemari utama (access key dan secret key) karena takut dia bisa buka semua laci atau ngambil file lain.
Di sinilah Presigned URL muncul sebagai solusi. Presigned URL itu kayak kunci sementara yang cuma bisa buka satu laci atau satu file tertentu, dan cuma berlaku untuk waktu yang kamu tentukan. Misalnya, kamu bisa kasih temanmu kunci buat ngambil file laporan.pdf
selama 1 jam aja. Setelah 1 jam, kunci itu nggak bisa dipake lagi.
Presigned URL untuk Download (Get Object)
Misalnya, kamu punya file laporan.pdf
di bucket private-bucket
. Kamu pengen ngasih temanmu akses buat ngunduh file itu, tapi cuma untuk 1 jam aja. Gimana caranya?
- Akses Terbatas:
URL ini cuma berlaku selama 1 jam. Setelah itu, temanmu nggak bisa lagi ngakses file itu pake URL yang sama.
Bagikan URL ke Temanmu:
Temanmu tinggal buka URL itu di browser atau pake tools seperti curl
buat ngunduh file:
curl -O "http://minio-server:9000/private-bucket/laporan.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESSKEY%2F20250124%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250124T080000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE"
Bikin Presigned URL:
Kamu bisa pake tools seperti MinIO Client (mc
) atau SDK MinIO buat bikin URL khusus. Contohnya:
mc share download myminio/private-bucket/laporan.pdf --expire=1h
Hasilnya bakal kayak gini:
http://minio-server:9000/private-bucket/laporan.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESSKEY%2F20250124%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250124T080000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE
Presigned URL untuk Upload (Put Object)
Sekarang, gimana kalo kamu pengen ngasih temanmu izin buat naro file di bucket kamu, tapi cuma untuk waktu tertentu? Misalnya, kamu pengen dia ngunggah file data.csv
ke folder uploaded-files
selama 1 jam aja.
- Akses Terbatas:
URL ini cuma berlaku selama 1 jam. Setelah itu, temanmu nggak bisa lagi ngunggah file pake URL yang sama.
Bagikan URL ke Temanmu:
Temanmu bisa pake URL itu buat ngunggah file pake tools seperti curl
:
curl -X PUT -T data.csv "http://minio-server:9000/private-bucket/uploaded-files/data.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESSKEY%2F20250124%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250124T080000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE"
Bikin Presigned URL untuk Upload:
Kamu bisa bikin URL khusus buat upload pake MinIO Client atau SDK. Contohnya:
mc share upload myminio/private-bucket/uploaded-files/data.csv --expire=1h
Apakah File yang Diunggah Akan Dihapus Otomatis?
Nah, ini pertanyaan yang sering muncul. Batasan waktu di Presigned URL cuma berlaku buat akses upload atau download-nya aja, bukan buat file yang udah diunggah. Jadi, kalo temanmu udah berhasil ngunggah file data.csv
, file itu bakal tetap ada di bucket sampe kamu hapus manual atau sampe ada aturan lifecycle policy yang berlaku.
Kalo kamu pengen file itu dihapus otomatis setelah waktu tertentu, kamu bisa atur lifecycle policy di bucket. Misalnya, kamu bisa atur biar semua file di folder uploaded-files
dihapus setelah 7 hari.
Kenapa Harus Pake Presigned URL?
- Aman: Nggak perlu ngasih akses penuh ke bucket.
- Fleksibel: Bisa ngasih akses buat download atau upload.
- Terbatas: Cuma berlaku untuk waktu tertentu.
- Praktis: Temanmu nggak perlu punya kredensial lengkap.
Kesimpulan
Presigned URL adalah solusi simpel dan aman buat ngasih akses terbatas ke file atau bucket di MinIO. Kamu bisa ngasih temanmu izin buat ngunduh atau ngunggah file tanpa perlu ribet ngasih akses penuh. Plus, kamu bisa ngatur berapa lama izin itu berlaku.
Kalo kamu udah pernah pake Presigned URL, share dong pengalamanmu di kolom komentar! Atau kalo kamu masih penasaran dan pengen diskusi lebih lanjut, yuk join server Discord Dev Connect di https://dsc.gg/devconnectid. Di sana, kita bisa belajar bareng dan sharing ilmu seputar teknologi. Sampai jumpa!
Bagikan artikel ini ke teman-temanmu yang mungkin butuh solusi ini! 😊
Comments ()