Penyimpanan File: S3 (Pro)

Pengantar

Berbasis plugin file management, menambahkan dukungan untuk tipe penyimpanan file yang kompatibel dengan protokol S3. Layanan object storage apa pun yang mendukung protokol S3 dapat dengan mudah diintegrasikan, contohnya Amazon S3, Aliyun OSS, Tencent COS, MinIO, Cloudflare R2, dan lainnya, lebih meningkatkan kompatibilitas dan fleksibilitas layanan penyimpanan.

Karakteristik Fitur

  1. Upload Sisi Klien: Proses upload file tidak perlu melalui server NocoBase, langsung terhubung ke layanan penyimpanan file, mewujudkan pengalaman upload yang lebih efisien dan cepat.

  2. Akses Privat: Saat mengakses file, semua URL adalah alamat otorisasi sementara yang sudah di-sign, memastikan keamanan dan ketepatan waktu akses file.

Skenario Penggunaan

  1. Manajemen Collection File: Pengelolaan dan penyimpanan terpusat semua file yang diupload, mendukung berbagai tipe file dan cara penyimpanan, memudahkan klasifikasi dan pencarian file.

  2. Penyimpanan Field Lampiran: Digunakan untuk penyimpanan data lampiran yang diupload dalam form atau record, mendukung relasi dengan record data tertentu.

Konfigurasi Plugin

  1. Aktifkan plugin plugin-file-storage-s3-pro

  2. Klik "Setting-> FileManager" untuk masuk ke pengaturan File Management

  3. Klik tombol "Add new", pilih "S3 Pro"

  1. Setelah floating layer muncul, Anda akan melihat banyak konten form yang perlu diisi. Anda dapat merujuk ke dokumentasi selanjutnya untuk mendapatkan informasi parameter terkait dari layanan file yang sesuai, dan mengisinya dengan benar ke form.

Konfigurasi Penyedia Layanan

Amazon S3

Membuat Bucket

  1. Buka https://ap-southeast-1.console.aws.amazon.com/s3/home untuk masuk ke S3 Console

  2. Klik tombol "Create bucket" di sebelah kanan

  1. Isi Bucket Name (Nama Bucket), field lainnya dapat tetap default. Scroll ke bawah halaman, klik tombol "Create" untuk menyelesaikan pembuatan.

Konfigurasi CORS

  1. Masuk ke daftar buckets, temukan dan klik Bucket yang baru saja dibuat untuk masuk ke halaman detailnya

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

  1. Isi konfigurasi berikut (Anda dapat menyesuaikan konfigurasinya), lalu simpan
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ],
        "MaxAgeSeconds": 3000
    }
]

Mendapatkan AccessKey, SecretAccessKey

  1. Klik tombol "Security credentials" di sudut kanan atas halaman

  1. Scroll ke bawah, temukan bagian "Access Keys", klik tombol "Create Access Key".

  1. Klik setuju (di sini contoh dengan akun utama, disarankan untuk menggunakan IAM dalam environment formal).

  1. Simpan Access key dan Secret access key yang ditampilkan di halaman

Mendapatkan Parameter dan Konfigurasi

  1. AccessKey ID dan AccessKey Secret adalah nilai yang sesuai yang Anda dapatkan pada operasi sebelumnya. Harap isi dengan benar.

  2. Masuk ke panel properties halaman detail bucket, Anda dapat mendapatkan informasi nama Bucket dan Region (region) di dalamnya.

Akses Publik (Opsional)

Ini bukan konfigurasi wajib. Saat Anda perlu membuat file upload sepenuhnya publik, lakukan konfigurasi

  1. Masuk ke panel Permissions, scroll ke bawah ke Object Ownership, klik edit, aktifkan ACLs

  1. Scroll ke Block public access, klik edit, atur untuk mengizinkan kontrol ACLs

  1. Centang Public access di NocoBase

Konfigurasi Thumbnail (Opsional)

Konfigurasi ini opsional, digunakan untuk mengoptimalkan ukuran atau efek pratinjau gambar. Perhatikan, skema deployment ini mungkin menghasilkan biaya tambahan. Untuk biaya spesifik harap lihat ketentuan terkait AWS.

  1. Akses Dynamic Image Transformation for Amazon CloudFront.

  2. Klik tombol Launch in the AWS Console di bagian bawah halaman, untuk memulai deployment skema.

  3. Selesaikan konfigurasi sesuai petunjuk. Beberapa opsi berikut perlu perhatian khusus:

    1. Saat membuat stack, Anda perlu menentukan nama Bucket Amazon S3 yang berisi gambar sumber. Harap isi nama bucket yang sudah Anda buat sebelumnya.
    2. Jika Anda memilih untuk men-deploy demo UI, setelah deployment selesai, Anda dapat menguji fungsi pemrosesan gambar melalui antarmuka tersebut. Di AWS CloudFormation Console, pilih stack Anda, masuk ke tab "Outputs", temukan nilai yang sesuai dengan kunci DemoUrl, klik link tersebut untuk membuka antarmuka demo.
    3. Skema ini menggunakan library Node.js sharp untuk memproses gambar secara efisien. Anda dapat mengunduh source code dari repository GitHub, dan menyesuaikan sesuai kebutuhan.

  4. Setelah konfigurasi selesai, tunggu hingga status deployment menjadi CREATE_COMPLETE.

  5. Dalam konfigurasi NocoBase, ada beberapa hal yang perlu diperhatikan:

    1. Thumbnail rule: Isi parameter terkait pemrosesan gambar, contohnya ?width=100. Untuk lebih spesifik, dapat merujuk ke dokumentasi AWS.
    2. Access endpoint: Isi nilai Outputs -> ApiEndpoint setelah deployment.
    3. Full access URL style: Perlu mencentang Ignore (karena saat konfigurasi sudah mengisi nama bucket, saat akses tidak perlu lagi).

Contoh Konfigurasi

Aliyun OSS

Membuat Bucket

  1. Buka OSS Console https://oss.console.aliyun.com/overview

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

  1. Isi informasi terkait bucket, akhirnya klik tombol Create

    1. Bucket Name sesuai dengan bisnis Anda, nama bebas

    2. Region pilih region yang paling dekat dengan pengguna Anda

    3. Konten lainnya dapat default, atau dikonfigurasi sendiri sesuai kebutuhan

Konfigurasi CORS

  1. Masuk ke halaman detail bucket yang dibuat pada langkah sebelumnya

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

  1. Klik tombol "Create Rule", dan isi konten terkait, scroll ke bawah klik "OK". Dapat merujuk ke screenshot di bawah, atau lakukan pengaturan yang lebih detail

Mendapatkan AccessKey, SecretAccessKey

  1. Klik "AccessKey" di bawah avatar di sudut kanan atas

  1. Di sini untuk kemudahan demo, menggunakan akun utama untuk membuat AccessKey. Untuk skenario penggunaan formal, disarankan menggunakan RAM untuk membuatnya, 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

  2. Klik tombol "Create AccessKey"

  1. Lakukan verifikasi akun

  1. Simpan Access key dan Secret access key yang ditampilkan di halaman

Mendapatkan Parameter dan Konfigurasi

  1. AccessKey ID dan AccessKey Secret adalah nilai yang didapatkan pada operasi sebelumnya

  2. Masuk ke halaman detail bucket, dapatkan Bucket

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

  1. 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.

  1. Isi parameter terkait Thumbnail rule. Untuk pengaturan parameter spesifik, dapat merujuk ke Parameter Pemrosesan Gambar.

  2. Full upload URL style dan Full access URL style pertahankan tetap sama.

Contoh Konfigurasi

MinIO

Membuat Bucket

  1. Klik menu Buckets di kiri -> klik Create Bucket, masuk ke halaman pembuatan
  2. Setelah mengisi nama Bucket, klik tombol simpan

Mendapatkan AccessKey, SecretAccessKey

  1. Masuk ke Access Keys -> klik tombol Create access key, masuk ke halaman pembuatan

  1. Klik tombol simpan

  1. Simpan Access Key dan Secret Key dalam popup, untuk konfigurasi selanjutnya

Konfigurasi Parameter

  1. Masuk ke halaman NocoBase -> File manager

  2. Klik tombol Add new, pilih S3 Pro

  3. Isi form

    • AccessKey ID dan AccessKey Secret adalah teks yang disimpan di langkah sebelumnya
    • Region: MinIO yang di-deploy secara private tidak memiliki konsep Region, dapat dikonfigurasi sebagai "auto"
    • Endpoint: Isi domain layanan atau alamat ip yang di-deploy
    • Atur Full access URL style menjadi Path-Style

Contoh Konfigurasi

Tencent COS

Dapat merujuk ke konfigurasi layanan file di atas, logikanya serupa

Contoh Konfigurasi

Cloudflare R2

Dapat merujuk ke konfigurasi layanan file di atas, logikanya serupa

Contoh Konfigurasi

Penggunaan Pengguna

Mengacu pada penggunaan plugin file-manager https://docs.nocobase.com/data-sources/file-manager/