Jika terpaksa harus menyimpan file di database karena alasan khusus bs membuat database tersendiri yg terpisah dari database utama supaya mudah di maintenance.
@@badrusalam3707 sebetulnya tetep ga rekomen, mending install minio aja as a storage objects, trs di encrypt KTP nya, lebih ribet maintain file di DB terkadang dibanding di object storages. cmiiw
Pakai NFS atau Persistent disk itu salah satu solusi yang paling gampang kalau perlu deploy aplikasi tertentu (legacy) yang gak bisa pakai object storage dan cuma bisa read/write di host machine.
@@aguskurniawan6711 maaf bang, kalau untuk data sensitif kek ktp kek di video apakah bener" aman? step sederhananya seperti apa? soalnya kalau maksa di db meski tabel terpisah... proses backup pasti makan waktu kan
@@zackyhabibie3733 Kalo mengacu informasi yang dibilang pak Eko bahwa KTP gaboleh disimpen dalam keadaan "mentah", boleh2 aja asalkan dienkripsi dulu. Jadi klo ada kemungkinan obj storage bocor, data yang bocor masih dalam bentuk terenkripsi.
Nambahin pak eko, untuk data sensitive kyk gitu masih ada ui yg akses, misal waktu KYC/KYB dibaca oleh admin yg approve/reject KYC/KYB tersebut untuk upgrade akun, api image urlnya tapi diamankan harus ada parameter/header tertentu misal token, yang ada masa expired sangat cepat, dan token tersebut di generate oleh internal system doang
praktik yang umum sih hanya path dari filenya di dalam direktory yang disimpan di dalam database. Saya tau ini ketika magang, ada yang bilang sistem lama menyimpan gambar di dalam database menggunakan blob tapi praktik ini tidak efektif.
Tapi cloud storage udah bisa encrypt bucket nya juga. Any files will be encrypted under that bucket dan bisa kita kasih security tambahan misal acl, policy, identity pool, dll.
kalau nyimpen link saja di database namun file tersebut ada di struktur folder utama dan ketika aplikasi request mengambil dari sistem utamanya namun melalui path yang sudah di simpan dari database, apakah diperbolehkan mas?.. karena banyak kampus² masih menerapkan pelajaran seperti ini.
@@yoviepramudya1412 ya karena memang gitu seharusnya. Anggap aja kayak pointer, kita gak nyimpan nilai asli dari sebuah variabel melainkan alamatnya. hal yang sama juga buat database dengan filesystem. Database ya tujuannya buat nyimpen data semacam entry gitu, jadi kalau dipakai buat nyimpen file ya gak cocok sama sekali. Apalagi database ada limit tertentu untuk satu rownya. jadi ya memang, kalau mau simpen sebuah file ya simpen aja di filesystem, jangan di database. Kalau sudah disimpan filenya dalam filesystem, baru tuh simpen path dari file tsb ke database.
@@vin3470 itupun kalau aplikasi udh skala besar hrus dipikirkan cara lain apalagi utk file gbr di app sprti marketplace. Krn klo gitu malah file coding berat cuma isinya file gbr. Efeknya kalau ganti framework atau bahasa pemrograman app nya
@@tes7662file koding ga nambah berat, karena gambarnya ga dicompile, cuma ditaruh di folder. dan gk ngaruh kalau ganti bahasa maupun framework. yang masuk ke file hasil kompilasinya cuma alamat path gambarnya.
15:40 pak kalau pakai minio kita host di server kita sendiri untuk data sensitif dan menerapkan encryption file plus kita generate temp url yg berlaku hanya 30 detik saja apakah masih melanggar regulasi pak?
sepengelaman saya di rs sama di fintench, as long as server fisik/penyedia ada di jakarta atau di Indonesia aman. nah kalo banking agak lebih strict, mayoritas bikin server sendiri ga pake cloud, tapi kalo fintect sama rs masih ada kelonggaran buat pake cloud
Kalau yang biasa saya pakai. Namanya saya generate lalu disimpan nama dan pathnya di database. dan juga jalur pathnya saya block kalau gak mengakses secara lengkap.
WYSIWYG mah buat konten doang mas,klo untuk data sensitifi buat file input lah. base64 kan default image di browser,untuk di save ke db pun gak masalah selama tipe data LongText atau Blob
implementasi teks editor yang tanpa include image base64 ke hasil teksnya bisa. tinggal buat fungsionalitas yang upload dulu filenya ke backend, return pathnya, lalu insert tag di posisi kursor saat ini. tidak disarankan pakai base64 karena database akan membengkak + mengubah file gambar ke format base64 itu ukurannya jadi bertambah, karena mengubah biner ke karakter string ASCII, peningkatan ukurannya sekitar 33%, jadi misal ukuran awalnya 5 mb menjadi 6.67 mb, ada peningkatan 0.67 mb itu untuk 1 gambar, kalau artikelnya ada 5 gambar yang ukurannya juga 5 mb, peningkatan totalnya jadi 8.35 mb, sehingga kecepatan jadi melambat karena data yang dikirim lebih besar
kalau best practise implement upload gimana gimana y? khususny pake object storage. khususny klo mau pake object storage, mulai dari nyimpan file name di DB (bentuk full link, full directory, file name acak?), cara encrypt nya gmna. trus untuk case upload file gede otomatis lama, apalagi skrg foto hp skrg gede amat y, gmn handle ny y? apakah upload ny ke bucket / temp dulu ? atau form/data ? klo misal temp, untuk case yg ad terapin fitur draft bagus ny gmn ? thanks bnyk2
gapapa sih, bisa aja. Tapi pertanyaannya adalah "apakah database ditujukan untuk hal tsb?" Kalau file yang disimpan besar, database sistemnya bakal overload, terlebih lagi bakal ganggu query yang lain dan hasilnya database jadi lebih lambat.
kalo setup encryption untuk data-data rahasia di database itu bagusnya implementasinya bagaimana Pak ? dan ecnryptionnya apa bagusnya di sisi aplikasi atau pake seperti AES encryption SQL ? dan key nya apa aman jika disimpan di database yang sama atau perlu pake vault kayak hashicorp, mohon wejangannya Pak
minio itu s3 compatible dan bisa self hosted object storage, jadi ya sama aja kayak s3 dsb nya yang ada bucket, jadi harusnya sama aja cuman bedanya di manage sendiri
implementasi teks editor yang tanpa include image base64 ke hasil teksnya bisa. tinggal buat fungsionalitas yang upload dulu filenya ke backend, return pathnya, lalu insert tag di posisi kursor saat ini
Kalo misal data sensitifnya itu tetap ingin di simpan di objek storage tetapi filenya di kompress dahulu lalu diset passwodnya, apakah memungkinkan? Dan apakah secara regulasi juga diperbolehkan juga?
atau buat middleware buat encript datanya lalu simpan hasilnya ke folder, bukan database, dstabase hanya nyimpan path ke file hasil encryptnya terus tinggal setting siapa yg boleh akses path itu di databasenya + bisa ditsmbah lagi setting akses di middleware lagi
Jika terpaksa harus menyimpan file di database karena alasan khusus bs membuat database tersendiri yg terpisah dari database utama supaya mudah di maintenance.
bisa, walaupun di app jadi ribet harus konek ke 2 database
setuju, biar bisa backup plan yang terpisah juga
Bisa jg table terpisah
@@ProgrammerZamanNow atau bisa buat 1 microservice khusus buat upload KTP? how?
@@badrusalam3707 sebetulnya tetep ga rekomen, mending install minio aja as a storage objects, trs di encrypt KTP nya, lebih ribet maintain file di DB terkadang dibanding di object storages. cmiiw
yg gasabaran skip ke 9:15
yg udah ngantuk*
Pass banget mas, memang kalau udah senior faham betul penempatannya, sy juga pakai database kalau nyimpan data sensitif.
Pakai NFS atau Persistent disk itu salah satu solusi yang paling gampang kalau perlu deploy aplikasi tertentu (legacy) yang gak bisa pakai object storage dan cuma bisa read/write di host machine.
Metadata dan path directory disimpan dalam database (DB), sementara file atau objek (file) disimpan di object storage (Hybrid Storage Model)
@@aguskurniawan6711 maaf bang, kalau untuk data sensitif kek ktp kek di video apakah bener" aman? step sederhananya seperti apa?
soalnya kalau maksa di db meski tabel terpisah... proses backup pasti makan waktu kan
@@zackyhabibie3733 Kalo mengacu informasi yang dibilang pak Eko bahwa KTP gaboleh disimpen dalam keadaan "mentah", boleh2 aja asalkan dienkripsi dulu. Jadi klo ada kemungkinan obj storage bocor, data yang bocor masih dalam bentuk terenkripsi.
@@zackyhabibie3733 nah, itu dah dijawab pak Eko
@@zackyhabibie3733 bisa enkripsi dulu dong 👍
Nambahin pak eko, untuk data sensitive kyk gitu masih ada ui yg akses, misal waktu KYC/KYB dibaca oleh admin yg approve/reject KYC/KYB tersebut untuk upgrade akun, api image urlnya tapi diamankan harus ada parameter/header tertentu misal token, yang ada masa expired sangat cepat, dan token tersebut di generate oleh internal system doang
full path bisa disimpa n ditabase kemudian fisik nya silahkan manfaatkan object storage seperti s3 aws agar tidak memberatkan size project.
praktik yang umum sih hanya path dari filenya di dalam direktory yang disimpan di dalam database. Saya tau ini ketika magang, ada yang bilang sistem lama menyimpan gambar di dalam database menggunakan blob tapi praktik ini tidak efektif.
Memang seperti itu, nanti file tersebut dijadikan asset static dan disimpan d projek atau containernya.
emang gitu bang, file disimpan di folder, di database cuma nyimpan path ke foldernya
Tapi cloud storage udah bisa encrypt bucket nya juga.
Any files will be encrypted under that bucket dan bisa kita kasih security tambahan misal acl, policy, identity pool, dll.
kalau nyimpen link saja di database namun file tersebut ada di struktur folder utama dan ketika aplikasi request mengambil dari sistem utamanya namun melalui path yang sudah di simpan dari database, apakah diperbolehkan mas?.. karena banyak kampus² masih menerapkan pelajaran seperti ini.
kayaknya jatuhnya nyimpan di container itu .. kalo monolith sih mungkin oke aja
@@yoviepramudya1412 ya karena memang gitu seharusnya. Anggap aja kayak pointer, kita gak nyimpan nilai asli dari sebuah variabel melainkan alamatnya.
hal yang sama juga buat database dengan filesystem. Database ya tujuannya buat nyimpen data semacam entry gitu, jadi kalau dipakai buat nyimpen file ya gak cocok sama sekali. Apalagi database ada limit tertentu untuk satu rownya.
jadi ya memang, kalau mau simpen sebuah file ya simpen aja di filesystem, jangan di database. Kalau sudah disimpan filenya dalam filesystem, baru tuh simpen path dari file tsb ke database.
@@vin3470 itupun kalau aplikasi udh skala besar hrus dipikirkan cara lain apalagi utk file gbr di app sprti marketplace. Krn klo gitu malah file coding berat cuma isinya file gbr. Efeknya kalau ganti framework atau bahasa pemrograman app nya
@@tes7662file koding ga nambah berat, karena gambarnya ga dicompile, cuma ditaruh di folder. dan gk ngaruh kalau ganti bahasa maupun framework. yang masuk ke file hasil kompilasinya cuma alamat path gambarnya.
memang seperti itu, mau disimpen di vm/container atau cloud storage, value di db nya ya path / url file nya
Ini pake web apa buat ngesimulasiin flownya ya?
mantap pak selalu hadir...
Data sensitif tidak boleh disimpan di luar negeri? Kalau begitu cloudflare tunnel dan varnish saja.
15:40 pak kalau pakai minio kita host di server kita sendiri untuk data sensitif dan menerapkan encryption file plus kita generate temp url yg berlaku hanya 30 detik saja apakah masih melanggar regulasi pak?
up
sepengelaman saya di rs sama di fintench, as long as server fisik/penyedia ada di jakarta atau di Indonesia aman. nah kalo banking agak lebih strict, mayoritas bikin server sendiri ga pake cloud, tapi kalo fintect sama rs masih ada kelonggaran buat pake cloud
pernah dapet case file harus disimpan ke db, karena udah permintaan client dan gak bisa di tolak. alhasil db bisa ber gb
form CPNS bisa lihat file KTP
Suram
Nah iya baru mau komen ini 😂😂
dawg💀
Yang meregulasi, yang tidak menerapkan wkwk
iyakah? yg mana mas,baru tau
Kalau yang biasa saya pakai. Namanya saya generate lalu disimpan nama dan pathnya di database. dan juga jalur pathnya saya block kalau gak mengakses secara lengkap.
deploy minio on premise minimum requirementnya tinggi banget.
skrg masih dinfs
Kalau pakai quillJS simpan image berita/artikel di DB pakai base64 apakah diperbolehkan?
WYSIWYG mah buat konten doang mas,klo untuk data sensitifi buat file input lah. base64 kan default image di browser,untuk di save ke db pun gak masalah selama tipe data LongText atau Blob
implementasi teks editor yang tanpa include image base64 ke hasil teksnya bisa. tinggal buat fungsionalitas yang upload dulu filenya ke backend, return pathnya, lalu insert tag di posisi kursor saat ini.
tidak disarankan pakai base64 karena database akan membengkak + mengubah file gambar ke format base64 itu ukurannya jadi bertambah, karena mengubah biner ke karakter string ASCII, peningkatan ukurannya sekitar 33%, jadi misal ukuran awalnya 5 mb menjadi 6.67 mb, ada peningkatan 0.67 mb itu untuk 1 gambar, kalau artikelnya ada 5 gambar yang ukurannya juga 5 mb, peningkatan totalnya jadi 8.35 mb, sehingga kecepatan jadi melambat karena data yang dikirim lebih besar
Blackboard-nya pakai tools apa pak eko? Keren pisan
Excalidraw
klok saya biasanya database hanya untuk nyimpen primary maupun nama filenya aja untuk file imagenya ada di folder
kang, misal mau bikin object strorage tp install sendiri itu pake apa ya ?
Bisa pakai minIO bang
kalau best practise implement upload gimana gimana y?
khususny pake object storage.
khususny klo mau pake object storage, mulai dari nyimpan file name di DB (bentuk full link, full directory, file name acak?),
cara encrypt nya gmna.
trus untuk case upload file gede otomatis lama, apalagi skrg foto hp skrg gede amat y, gmn handle ny y?
apakah upload ny ke bucket / temp dulu ? atau form/data ?
klo misal temp, untuk case yg ad terapin fitur draft bagus ny gmn ?
thanks bnyk2
untuk upload file gede prefer dimasukan ke queue dan di eksekusi worker,biar app gak terlalu over request
biasanya aku ke base64 baru ke db, keknya itu gak reccomend ya?
gapapa sih, bisa aja. Tapi pertanyaannya adalah "apakah database ditujukan untuk hal tsb?" Kalau file yang disimpan besar, database sistemnya bakal overload, terlebih lagi bakal ganggu query yang lain dan hasilnya database jadi lebih lambat.
ga recommended karena base64 membuat filenya menjadi 1/3x lebih besar dari original file size.
gk. yg paling efisien gambar dk dimpan di folder, di database cuma nyimpan pathnya
klo untuk 1-5 foto kasus postingan blog yah gpp,pakai tipe data LongText,tapi ttp membuat database "agak" bengkak hehe
mas, nama web coret2nya apa ya? trima kasih
kalo setup encryption untuk data-data rahasia di database itu bagusnya implementasinya bagaimana Pak ?
dan ecnryptionnya apa bagusnya di sisi aplikasi atau pake seperti AES encryption SQL ?
dan key nya apa aman jika disimpan di database yang sama atau perlu pake vault kayak hashicorp, mohon wejangannya Pak
kalo database untuk nyimpan file diganti minio worth it ngak Pak ?
minio itu s3 compatible dan bisa self hosted object storage, jadi ya sama aja kayak s3 dsb nya yang ada bucket, jadi harusnya sama aja cuman bedanya di manage sendiri
Makasih pak ❤
Kalau di laravel itu berarti konsepnya gimana? Soalnya ada bisa di upload di server sendiri
biasanya path gambar di storage disimpan ke db bang
Itungannya object storage tapi milik sendiri (bukan cloud). Kalo di vm itu biasanya di structure folder ada namanya static.
pak aplikasi yg dpake menjelaskan apa yah pak ?
@@andiagung4371 excalidraw
Software buat gambar diagram nya pakai apa ya?
@@anandailyasa2530 exceldraw googling aja
Nama aplikasi corat-coret nya apa bang ?
Pak benarkah gaji programmer di indonesia tidak lebih besar dari pramusaji?
Pak ada tutorial database Oracle.
kasus yg pake database lagi seperti data dari wysiwyg editor, tapi emang bukan file tapi base64
implementasi teks editor yang tanpa include image base64 ke hasil teksnya bisa. tinggal buat fungsionalitas yang upload dulu filenya ke backend, return pathnya, lalu insert tag di posisi kursor saat ini
baru tau file bisa disimpan di database,yg saya tau database buat nyimpen linked pathnya aja
Itu pake apa ya app nya? Papan board nya?
@@he_id1985 excalidraw?
Pas banget saya lagi perlu informasi ini
Pa eko request bahas upload file besar yang dipecah2 jadi chunk kecil, itu gimana ya cara kerjanya. Nuhuns
File kok di simpan di database? Bjir kesindir gw😅
Library untuk encrypt decrypt ktp di db pake apa bang?
tinggal tentukan algoritma yang mau dipake, library nya harusnya udah banyak
@ProgrammerZamanNow ada rekomendasi untuk library encrypt di node js?
@@IkromAuliaFahdi crypto-js
@@IkromAuliaFahdi vault
paling gak suka nyimpen file di database. kayak aneh aja gitu 😅
@@hafiznugraha3063 aneh tu klo kena ransomeware
emang gk bener, yg bener simpan di folder terus ambil pathnya simpan pathnya di database
Kalau imagenya kecil 1mb translate ke base64 terus encrypt max 25 length simpen didatabase 😅
1 mb x 100000 jumlah data. jgn asal-asal bang, gambar disimpan di folder biasa, di database cuma nyimpan path
Sip
Ya yang dimasukin filename nya lah
Durasinya cuma 17 menit 😢
Kalo misal data sensitifnya itu tetap ingin di simpan di objek storage tetapi filenya di kompress dahulu lalu diset passwodnya, apakah memungkinkan? Dan apakah secara regulasi juga diperbolehkan juga?
Disimpen dimana? Kalo di luar indo, gak boleh
@@ProgrammerZamanNowberarti kalo self hosted kaya minio aman dong
@@hafiznugraha3063 hosted dimana? klo diluar ya sama aja gabole
tinggal bikin middleware hanya user tertentu yg boleh akses data itu atau ada passwordnya
atau buat middleware buat encript datanya lalu simpan hasilnya ke folder, bukan database, dstabase hanya nyimpan path ke file hasil encryptnya terus tinggal setting siapa yg boleh akses path itu di databasenya + bisa ditsmbah lagi setting akses di middleware lagi
Aku yang make aws s3 : "hehe"
Abis dibahas di grup TG, langsung dibahas juga disini.. wkwkak
Adakah self hosted object storage yang recommended?
minio maybe
Database klo nyimpn blob ya gampang bengkak
ide siapa nyimpen gambar di db wkwk
setelah bang Dea, ikutlah pak Eko 🗿
lengah dikit, English cikk