URL stabil

File ManagerCommunity Edition+

File yang dikelola oleh storage engine NocoBase diakses melalui URL stabil. NocoBase memeriksa record file dan izin akses, lalu mengalihkan permintaan ke URL aktual yang dibuat oleh storage engine.

Format

/files/<app>/<dataSource>/<collection>/<id><extname>

Jika APP_PUBLIC_PATH=/nocobase, path dimulai dengan /nocobase/files/. ID dan ekstensi tidak dapat diubah setelah file dibuat, sehingga URL tetap stabil selama record masih ada.

PenggunaanURLPerilaku
Membuka/files/.../42.pdfMemeriksa izin dan mengalihkan ke file
Pratinjau/files/.../42.png?preview=1Mengalihkan ke thumbnail atau URL pratinjau
Unduh/files/.../42.pdf?download=1Mengalihkan dengan mode unduh
Office/files/.../42.xlsx?temporaryAccessToken=...Akses sementara untuk Office Online Viewer

Perilaku di NocoBase

  • Field attachment, file collection, dan HTTP API mengembalikan URL stabil pada url dan preview
  • Markdown menyimpan URL stabil dan mendukung S3, OSS, COS, serta S3 Pro privat
  • Field URL attachment mempertahankan URL eksternal yang dimasukkan manual dan memakai URL stabil untuk upload yang dikelola NocoBase
  • Pratinjau biasa memakai sesi login dan izin file NocoBase saat ini
  • Form publik hanya memberi akses terbatas ke file yang diunggah dalam sesi form tersebut

Pratinjau Office

Microsoft Office Online Viewer tidak dapat memakai cookie NocoBase milik pengguna. Saat pratinjau dibuka, NocoBase memeriksa izin terlebih dahulu lalu menerbitkan URL sementara yang terikat pada satu file. Masa berlaku default adalah 10 menit dan dapat diatur antara 5 sampai 10 menit melalui TEMPORARY_FILE_ACCESS_EXPIRES_IN.

Jangan simpan URL sementara ini ke field, Markdown, atau data bisnis, dan jangan gunakan sebagai tautan berbagi.

Catatan penting

  • Stabil tidak berarti publik; penerima tetap memerlukan izin
  • Menghapus atau memindahkan record ke konteks lain akan membatalkan URL lama
  • Respons berupa pengalihan 302 yang harus diikuti oleh klien
  • Jangan menyimpan 302 Location atau temporaryAccessToken
  • Reverse proxy harus meneruskan rute /files/ di bawah APP_PUBLIC_PATH ke NocoBase. Untuk deployment pada subpath, pertahankan juga rute kompatibilitas /files/ di root. Konfigurasi yang dibuat oleh NocoBase CLI otomatis mencakup kedua rute tersebut
  • Pada deployment ketika halaman mengakses API secara lintas origin (API_BASE_URL menunjuk ke origin lain), origin halaman harus ditambahkan ke CORS_ORIGIN_WHITELIST. Jika tidak, cookie login tidak akan pernah tersimpan dan stable URL akan mengembalikan 403 karena kredensial tidak ikut terkirim. Lihat Variabel lingkungan
  • Gunakan hostname yang berbeda untuk setiap layanan NocoBase yang berdiri sendiri, bukan hanya membedakannya berdasarkan port. Cookie browser tidak diisolasi berdasarkan port; lihat Deployment environment produksi
  • Sub-app dalam deployment NocoBase yang sama dibedakan berdasarkan nama aplikasi dan tidak memerlukan hostname terpisah. Namun, layanan independen pada port lain tetap harus diisolasi dengan hostname jika memiliki aplikasi utama atau sub-app dengan nama yang sama

Tautan terkait