Blog

Kelebihan dan Kekurangan menyimpan di file di public

Kelebihan dan Kekurangan menyimpan di file di public

Menyimpan file langsung ke **`public/`** atau melalui **`storage/app/public/`** memiliki **kelebihan dan kekurangan** masing-masing. Berikut adalah **perbandingan lengkapnya**:

---

## **1️⃣ Menyimpan File di `public/` (Menggunakan `move(public_path())`)**
📌 **Cara:**
```php
$image->move(public_path('blogs'), $imageName);
```

### **✅ Kelebihan:**
1. **Lebih Mudah Diakses (Tanpa `storage:link`)**
- File langsung bisa diakses melalui **`http://yourdomain.com/blogs/nama_gambar.jpg`**.
- Tidak perlu menjalankan **`php artisan storage:link`** seperti saat menyimpan ke `storage/`.

2. **Lebih Simpel & Langsung Terlihat di `public/`**
- File langsung masuk ke folder **`public/blogs/`**, jadi mudah dicek atau dihapus secara manual.
- Tidak tersembunyi di dalam **`storage/app/public/`**.

3. **Cocok untuk File yang Harus Langsung Diakses**
- Contoh: **gambar produk, avatar pengguna, dokumen umum**.
- Tidak ada batasan hak akses, karena file ada di folder publik.

### **❌ Kekurangan:**
1. **Kurang Aman** 🚨
- Semua file di **`public/`** bisa diakses langsung oleh siapa saja.
- Jika ada file **sensitif atau private (misalnya PDF, dokumen user, dll.)**, sebaiknya **jangan gunakan `public/`**.

2. **Sulit Dipindahkan Saat Deployment**
- Jika ingin memindahkan aplikasi ke server lain, semua file di `public/` harus disalin secara manual.
- Tidak cocok untuk **aplikasi multi-server** atau menggunakan **cloud storage (AWS S3, Google Cloud, dll.)**.

---

## **2️⃣ Menyimpan File di `storage/app/public/` (Menggunakan `store('blogs', 'public')`)**
📌 **Cara:**
```php
$image->store('blogs', 'public');
```

### **✅ Kelebihan:**
1. **Lebih Aman 🔒**
- File disimpan di **`storage/app/public/`**, yang tidak bisa diakses langsung.
- Harus menggunakan **`storage:link`** untuk membuat symlink ke `public/storage/`.
- Cocok untuk file **privat atau semi-pribadi**, seperti:
- **Dokumen user (KTP, SIM, dll.)**
- **File penting yang tidak boleh langsung diakses publik**

2. **Lebih Rapi & Mudah Dipindahkan**
- **File terorganisir di dalam `storage/`**, tidak bercampur dengan asset seperti CSS/JS di `public/`.
- Saat pindah server, cukup copy **folder `storage/`** tanpa menyentuh `public/`.

3. **Cocok untuk Aplikasi dengan Banyak File**
- Jika aplikasi menyimpan **banyak gambar, video, atau file besar**, lebih baik pakai `storage/`.
- Bisa menggunakan **AWS S3 atau Google Cloud** lebih mudah.

### **❌ Kekurangan:**
1. **Perlu Symlink `storage:link`**
- Setelah menyimpan file, harus jalankan:
```bash
php artisan storage:link
```
- Jika symlink belum dibuat, file tidak akan bisa diakses.

2. **URL File Tidak Langsung Bisa Diakses**
- Perlu menggunakan **`asset('storage/blogs/nama.jpg')`** agar bisa ditampilkan di website.

---

## **🔥 Kesimpulan**
| **Metode Penyimpanan** | **Kelebihan** | **Kekurangan** | **Cocok Untuk** |
|----------------|-------------|--------------|-------------|
| **Langsung ke `public/`** | Mudah diakses, tidak perlu `storage:link` | Kurang aman, file bisa diakses siapa saja | **Gambar produk, avatar user, ikon** |
| **Ke `storage/app/public/`** | Lebih aman, cocok untuk cloud storage | Harus pakai `storage:link`, URL tidak langsung bisa diakses | **Dokumen penting, file sensitif, aplikasi besar** |

---

## **🚀 Rekomendasi: Kapan Gunakan `public/` atau `storage/`?**
- ✅ **Gunakan `public/` jika file harus langsung diakses publik** (misalnya gambar blog, avatar user).
- ✅ **Gunakan `storage/` jika file bersifat pribadi atau lebih aman** (misalnya dokumen user, PDF penting).

---

**Kesimpulan Akhir:**
- Jika ingin **simpel & langsung bisa diakses**, pakai **`public/`**.
- Jika ingin **lebih aman & scalable**, pakai **`storage/app/public/`**.

🚀 **Sekarang Anda bisa memilih metode penyimpanan yang sesuai!** Jika ada pertanyaan, beri tahu saya. 😊

0 Komentar

Berikan Komentar Anda

Get In Touch

Jl Rajawali No.44A Kec. Sukajadi , Pekanbaru, Riau

rifqi.mdev@gmail.com

085326812196

Hubungi via WhatsApp:

085326812196
Chat Sekarang