Pengembangan Ekstensi
File ManagerCommunity Edition+Memperluas Storage Engine
Server-side
-
Inherit
StorageTypeBuat class baru dan implementasikan method
make()dandelete(). Jika perlu, override hook sepertigetFileURL(),getFileStream(),getFileData(), dan lainnya.
Contoh:
- Mendaftarkan Tipe Baru
Pada lifecyclebeforeLoadatauloadplugin, inject implementasi storage baru:
Setelah pendaftaran selesai, konfigurasi storage akan muncul pada resource storages seperti tipe bawaan. Konfigurasi yang disediakan oleh StorageType.defaults() dapat digunakan untuk mengisi form secara otomatis atau menginisialisasi record default.
Memperluas Tipe File Frontend
Untuk file yang sudah selesai diunggah, pada antarmuka frontend Anda dapat menampilkan konten pratinjau yang berbeda berdasarkan tipe file yang berbeda. Field lampiran File Manager memiliki pratinjau file berbasis browser bawaan (disematkan dalam iframe). Cara ini mendukung sebagian besar format file (gambar, video, audio, PDF, dan lainnya) untuk dipratinjau langsung di browser. Saat format file tidak mendukung pratinjau browser, atau ada interaksi pratinjau khusus yang dibutuhkan, Anda dapat memperluasnya melalui komponen pratinjau berbasis tipe file.
Contoh
Contoh, jika Anda ingin mengintegrasikan pratinjau online kustom untuk file Office, Anda dapat menggunakan kode berikut:
filePreviewTypes adalah object entry yang disediakan @nocobase/plugin-file-manager/client untuk memperluas pratinjau file. Gunakan method add yang disediakannya untuk memperluas object deskripsi tipe file.
Setiap tipe file harus mengimplementasikan method match() untuk memeriksa apakah tipe file memenuhi syarat. Pada contoh, matchMimetype digunakan untuk memeriksa properti mimetype file. Jika cocok dengan tipe docx, maka file dianggap sebagai tipe yang perlu diproses. Jika tidak cocok, akan didowngrade ke pemrosesan tipe bawaan.
Properti Previewer pada object deskripsi tipe adalah komponen yang digunakan untuk pratinjau. Saat tipe file cocok, komponen ini akan dirender untuk pratinjau. Komponen akan dirender dalam layer popup pratinjau file. Anda dapat mengembalikan view React apapun (contoh iframe, player, chart, dan lainnya).
API
filePreviewTypes
filePreviewTypes adalah instance global, di-import melalui @nocobase/plugin-file-manager/client:
filePreviewTypes.add()
Mendaftarkan object deskripsi tipe file baru ke registry tipe file. Tipe object deskripsi adalah FilePreviewType.
FilePreviewType
match()
Method pencocokan format file.
Parameter file yang dikirim adalah object data file yang sudah diunggah, berisi properti terkait yang dapat digunakan untuk penilaian tipe:
mimetype: deskripsi mimetypeextname: ekstensi file, termasuk "."path: path relatif penyimpanan fileurl: URL file
Nilai kembalian bertipe boolean, menunjukkan hasil pencocokan.
getThumbnailURL
Digunakan untuk mengembalikan alamat thumbnail dalam daftar file. Saat nilai kembalian kosong, gambar placeholder bawaan akan digunakan.
Previewer
Komponen React yang digunakan untuk pratinjau file.
Parameter Props yang dikirim:
file: object file saat ini (mungkin berupa string URL atau object yang berisiurl/preview)index: indeks file dalam listlist: list file

