Demo

FileService

ဖိုင် upload၊ metadata နှင့် သိုလှောင်မှု (local သို့မဟုတ် S3) ကို စီမံပေးပါသည် — pre-signed download URL ပါအပါအဝင် ဖြစ်ပါသည်။

Inject

TSXinject
1import { 2 ContainerRegistryManager, 3 FileService, 4 Inject, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class MyPluginService { 10 @Inject(FileService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private fileService: FileService; 12}

addFile(options)

ယာယီ upload ကို သိုလှောင်မှုသို့ ရွှေ့ပြီး FileEntity အတန်းတစ်ခု ထည့်သွင်းပေးပါသည်။

  • tempFilePath / originalName / mimeType — upload ဆိုင်ရာ အချက်အလက်များ
  • metadata / creatorId — meta နှင့် တင်သွင်းသူ
  • type: FileStorageType — LOCAL သို့မဟုတ် S3
  • fileAccess / accessRole — ဝင်ရောက်ခွင့် စည်းမျဉ်း
  • compression? — ရွေးချယ်နိုင်သော ချုံ့မှု
TSXaddFile
1import { 2 ContainerRegistryManager, 3 FileAccess, 4 FileService, 5 FileStorageType, 6 Inject, 7 Service, 8} from "@quan-erp/shared-backend-core"; 9 10@Service() 11export class AttachmentService { 12 @Inject(FileService, ContainerRegistryManager.BUILTIN_PLUGIN) 13 private fileService: FileService; 14 15 async storeUpload(tempPath: string, userId: number) { 16 return this.fileService.addFile({ 17 tempFilePath: tempPath, 18 originalName: "invoice.pdf", 19 mimeType: "application/pdf", 20 metadata: { source: "invoice-upload" }, 21 creatorId: userId, 22 type: FileStorageType.LOCAL, 23 fileAccess: FileAccess.PRIVATE, 24 accessRole: [], 25 }); 26 } 27}

အခြား method များ

  • findFile(filename) — filename ဖြင့် metadata ရှာဖွေပါသည်
  • getFiles(skip, limit) — စာမျက်နှာခွဲထားသော စာရင်း
  • deleteFile(id) — သိုလှောင်မှုနှင့် DB အတန်းကို ဖယ်ရှားပါသည်
  • generatePreSignedUrl(file, expiresInSeconds, mimeType) — ယာယီ download URL ထုတ်ပေးပါသည်
TSXdownload
1import { 2 ContainerRegistryManager, 3 FileService, 4 Inject, 5 Service, 6} from "@quan-erp/shared-backend-core"; 7 8@Service() 9export class FileLinkService { 10 @Inject(FileService, ContainerRegistryManager.BUILTIN_PLUGIN) 11 private fileService: FileService; 12 13 async temporaryLink(filename: string, mimeType: string) { 14 return this.fileService.generatePreSignedUrl( 15 filename, 16 60 * 15, 17 mimeType 18 ); 19 } 20}