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}