Storage Engine: S3 (Pro)
Penyimpanan File: S3 (Pro)Professional Edition+Pengantar
Berbasis plugin File Manager, ditambahkan dukungan untuk tipe penyimpanan file yang kompatibel dengan protokol S3. Layanan object storage manapun yang mendukung protokol S3 dapat dengan mudah diintegrasikan, contoh Amazon S3, Aliyun OSS, Tencent COS, MinIO, Cloudflare R2, dan lainnya, sehingga lebih meningkatkan kompatibilitas dan fleksibilitas layanan storage.
Fitur
-
Upload dari client: proses upload file tidak perlu melewati server NocoBase, langsung terhubung ke layanan storage file, mewujudkan pengalaman upload yang lebih efisien dan cepat.
-
Akses privat: secara default menggunakan URL bertanda tangan dengan masa berlaku. URL tanpa tanda tangan juga dapat dibuat untuk bucket publik.
Skenario Penggunaan
-
Manajemen Tabel File: mengelola dan menyimpan secara terpusat semua file yang diunggah, mendukung berbagai tipe file dan cara penyimpanan, memudahkan klasifikasi dan pencarian file.
-
Penyimpanan Field Lampiran: digunakan untuk menyimpan data lampiran yang diunggah pada form atau record, mendukung asosiasi dengan record data spesifik.
Konfigurasi Plugin
-
Aktifkan plugin plugin-file-storage-s3-pro
-
Klik "Setting -> FileManager" untuk masuk ke pengaturan File Manager
-
Klik tombol "Add new", pilih "S3 Pro"

- Setelah panel muncul, Anda akan melihat banyak isian form yang perlu diisi. Anda dapat merujuk ke dokumentasi berikutnya untuk mendapatkan informasi parameter dari layanan file yang sesuai, dan mengisinya dengan benar pada form.

Konfigurasi URL
Selain opsi umum File Manager "URL NocoBase", "URL asli", dan "Izinkan akses publik", S3 Pro dapat mengkonfigurasi format URL upload dan akses secara terpisah serta menentukan apakah URL bertanda tangan digunakan. Lihat Ikhtisar Storage Engine untuk penjelasan opsi umum.
Opsi ini mengontrol tahap yang berbeda:
- "URL NocoBase / URL asli" mengontrol alamat yang dikembalikan oleh record file
- "Izinkan akses publik" mengontrol apakah izin melihat record file diperiksa saat URL NocoBase diakses
- "Jangan gunakan URL bertanda tangan" mengontrol apakah object storage memvalidasi tanda tangan URL
Konfigurasi ini dapat dikombinasikan secara independen. Default yang direkomendasikan adalah menggunakan URL NocoBase, tidak mencentang "Izinkan akses publik", dan tetap menggunakan URL bertanda tangan.

Cara memilih
Format URL unggahan
"Format URL unggahan" mengontrol URL S3 yang digunakan client saat upload file. Pilih format yang didukung service storage. Form konfigurasi menampilkan contoh berdasarkan Endpoint, Bucket, dan path saat ini:
- "Bucket as subdomain":
https://bucket-name.s3.example.com/path/to/object - "Bucket as subpath":
https://s3.example.com/bucket-name/path/to/object - "Ignore bucket":
https://upload.example.com/path/to/object
Format URL akses
"Format URL akses" mengontrol apakah Bucket muncul pada domain, path, atau tidak muncul sama sekali saat S3 Pro membuat alamat akses file. Tersedia tiga format yang sama dengan URL upload, tetapi dapat dikonfigurasi secara terpisah—contohnya upload menggunakan S3 Endpoint sementara akses menggunakan domain CDN tanpa Bucket.
Opsi ini memengaruhi URL asli dan alamat storage yang menjadi tujuan akhir pengalihan URL NocoBase, tetapi tidak mengubah format URL NocoBase itu sendiri.
Jangan gunakan URL bertanda tangan
S3 Pro menggunakan URL bertanda tangan secara default. URL asli yang dibuat berisi parameter tanda tangan, contohnya:
URL bertanda tangan berlaku selama waktu yang dikonfigurasi pada "Access URL expiration", dan bucket dapat tetap privat. Saat URL NocoBase digunakan, NocoBase membuat atau mengalihkan ke alamat bertanda tangan setelah pemeriksaan izin berhasil.
Saat "Jangan gunakan URL bertanda tangan" dicentang, S3 Pro membuat alamat tanpa parameter tanda tangan. Bucket dan object yang di-upload harus mengizinkan baca publik, dan "Access URL expiration" tidak lagi berlaku.
"Jangan gunakan URL bertanda tangan" hanya mengontrol validasi tanda tangan oleh service storage dan tidak mengubah izin record NocoBase. Jika URL NocoBase dipilih dan "Izinkan akses publik" tidak dicentang, request tetap harus melewati pemeriksaan izin NocoBase terlebih dahulu.
Konfigurasi Penyedia Layanan
Amazon S3
Pembuatan Bucket
-
Buka https://ap-southeast-1.console.aws.amazon.com/s3/home untuk masuk ke S3 Console
-
Klik tombol "Create bucket" di sebelah kanan

- Isi Bucket Name, field lainnya dapat dibiarkan default. Scroll ke bawah halaman, klik tombol "Create" untuk menyelesaikan pembuatan.


Konfigurasi CORS
- Masuk ke daftar buckets, cari dan klik bucket yang baru saja dibuat untuk masuk ke halaman detailnya

- Klik tab "Permission", lalu scroll ke bawah untuk menemukan bagian konfigurasi CORS


- Isi konfigurasi berikut (Anda dapat menyesuaikan konfigurasi lebih detail), lalu simpan

Mendapatkan AccessKey, SecretAccessKey
- Klik tombol "Security credentials" di pojok kanan atas halaman

- Scroll ke bawah, cari bagian "Access Keys", klik tombol "Create Access Key".

- Klik setuju (di sini menggunakan akun utama untuk demonstrasi, untuk lingkungan produksi disarankan menggunakan IAM).

- Simpan Access key dan Secret access key yang ditampilkan pada halaman

Mendapatkan dan Mengkonfigurasi Parameter
-
AccessKey ID dan AccessKey Secret adalah nilai yang Anda dapatkan pada langkah sebelumnya, harap isi dengan akurat
-
Masuk ke panel properties pada halaman detail bucket, Anda dapat memperoleh informasi nama Bucket dan Region (region).

Akses publik tanpa tanda tangan (opsional)
Konfigurasikan ini hanya jika URL tanpa tanda tangan diperlukan, karena Bucket dan object yang di-upload harus mengizinkan baca publik. Jika hanya ingin membagikan URL NocoBase publik, centang "Izinkan akses publik" dan tetap gunakan URL bertanda tangan; Bucket tidak perlu dibuat publik.
- Masuk ke panel Permissions, scroll ke bawah ke Object Ownership, klik edit, aktifkan ACLs

- Scroll ke Block public access, klik edit, atur agar mengizinkan kontrol ACLs

- Centang "Jangan gunakan URL bertanda tangan" di NocoBase
Konfigurasi Thumbnail (Opsional)
Konfigurasi ini opsional, digunakan untuk mengoptimalkan ukuran atau efek pratinjau gambar. Perhatian, solusi deployment ini mungkin menimbulkan biaya tambahan, untuk biaya spesifik silakan merujuk ke ketentuan AWS.
-
Klik tombol
Launch in the AWS Consoledi bagian bawah halaman untuk memulai deployment solusi.
-
Ikuti petunjuk untuk menyelesaikan konfigurasi. Beberapa opsi berikut perlu diperhatikan:
- Saat membuat stack, Anda perlu menentukan nama bucket Amazon S3 yang berisi gambar sumber. Harap isi nama bucket yang Anda buat sebelumnya.
- Jika Anda memilih untuk men-deploy demo UI, setelah deployment selesai Anda dapat menguji fitur image processing melalui antarmuka tersebut. Pada AWS CloudFormation Console, pilih stack Anda, masuk ke tab "Outputs", cari nilai key DemoUrl, klik link tersebut untuk membuka antarmuka demo.
- Solusi ini menggunakan library
sharpNode.js untuk memproses gambar secara efisien. Anda dapat mengunduh source code dari repository GitHub dan melakukan kustomisasi sesuai kebutuhan.

-
Setelah konfigurasi selesai, tunggu hingga status deployment menjadi
CREATE_COMPLETE. -
Pada konfigurasi NocoBase, ada beberapa hal yang perlu diperhatikan:
Thumbnail rule: isi parameter image processing, contoh?width=100. Untuk detail lihat dokumentasi AWS.Access endpoint: isi nilai dari Outputs -> ApiEndpoint setelah deployment.- "Format URL akses": pilih "Ignore bucket" karena nama bucket sudah disertakan dalam konfigurasi dan tidak diperlukan pada URL akses.

Contoh Konfigurasi

Aliyun OSS
Pembuatan Bucket
- Buka OSS Console https://oss.console.aliyun.com/overview

- Klik "Buckets" di menu sebelah kiri, lalu klik tombol "Create Bucket" untuk mulai membuat bucket

-
Isi informasi terkait bucket, terakhir klik tombol Create
-
Bucket Name disesuaikan dengan bisnis Anda, nama bebas
-
Region pilih region terdekat dengan pengguna Anda
-
Konten lainnya dapat dibiarkan default, atau dikonfigurasi sesuai kebutuhan
-

Konfigurasi CORS
- Masuk ke halaman detail bucket yang dibuat pada langkah sebelumnya

- Klik "Content Security -> CORS" di menu tengah

- Klik tombol "Create Rule", isi konten yang sesuai lalu scroll ke bawah dan klik "OK". Anda dapat merujuk ke screenshot di bawah, atau melakukan pengaturan yang lebih detail

Mendapatkan AccessKey, SecretAccessKey
- Klik "AccessKey" di bawah avatar pojok kanan atas

-
Untuk demonstrasi, di sini menggunakan akun utama untuk membuat AccessKey. Untuk skenario produksi disarankan menggunakan RAM, Anda dapat merujuk ke https://help.aliyun.com/zh/ram/user-guide/create-an-accesskey-pair-1?spm=5176.28366559.0.0.1b5c3c2fUI9Ql8#section-rjh-18m-7kp
-
Klik tombol "Create AccessKey"

- Lakukan verifikasi akun

- Simpan Access key dan Secret access key yang ditampilkan pada halaman

Mendapatkan dan Mengkonfigurasi Parameter
-
AccessKey ID dan AccessKey Secret adalah nilai yang didapat pada langkah sebelumnya
-
Masuk ke halaman detail bucket, dapatkan Bucket

- Scroll ke bawah, dapatkan Region (".aliyuncs.com" di belakang tidak diperlukan)

- Dapatkan alamat endpoint, saat diisi ke NocoBase perlu menambahkan prefix https://

Konfigurasi Thumbnail (Opsional)
Konfigurasi ini opsional, hanya digunakan saat perlu mengoptimalkan ukuran atau efek pratinjau gambar.
-
Isi parameter terkait
Thumbnail rule. Untuk pengaturan parameter spesifik dapat merujuk ke Parameter Image Processing. -
"Format URL unggahan" dan "Format URL akses" dapat menggunakan pengaturan yang sama.
Contoh Konfigurasi

MinIO
Pembuatan Bucket
- Klik menu Buckets di sebelah kiri -> klik Create Bucket, masuk ke halaman pembuatan
- Setelah mengisi nama Bucket, klik tombol simpan
Mendapatkan AccessKey, SecretAccessKey
- Masuk ke Access Keys -> klik tombol Create access key, masuk ke halaman pembuatan

- Klik tombol simpan

- Simpan Access Key dan Secret Key dari popup, untuk konfigurasi selanjutnya

Konfigurasi Parameter
-
Masuk ke halaman NocoBase -> File manager
-
Klik tombol Add new, pilih S3 Pro
-
Isi form
- AccessKey ID dan AccessKey Secret adalah teks yang disimpan pada langkah sebelumnya
- Region: MinIO yang di-deploy privat tidak memiliki konsep Region, dapat dikonfigurasi sebagai "auto"
- Endpoint: isi domain atau alamat IP layanan yang di-deploy
- Atur "Format URL akses" menjadi "Bucket as subpath"
Contoh Konfigurasi

Tencent COS
Anda dapat merujuk ke konfigurasi layanan file di atas, logikanya serupa
Contoh Konfigurasi

Cloudflare R2
Anda dapat merujuk ke konfigurasi layanan file di atas, logikanya serupa
Contoh Konfigurasi


