vona-module-image-native 5.0.1 → 5.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.metadata/index.d.ts +33 -0
- package/dist/.metadata/index.d.ts.map +1 -1
- package/dist/bean/imageProvider.native.d.ts +4 -2
- package/dist/bean/imageProvider.native.d.ts.map +1 -1
- package/dist/controller/image.d.ts +11 -0
- package/dist/controller/image.d.ts.map +1 -0
- package/dist/index.js +142 -31
- package/dist/index.js.map +1 -1
- package/dist/service/imageNative.d.ts +10 -2
- package/dist/service/imageNative.d.ts.map +1 -1
- package/package.json +7 -3
- package/src/.metadata/index.ts +37 -0
- package/src/bean/imageProvider.native.ts +21 -1
- package/src/controller/image.ts +57 -0
- package/src/service/imageNative.ts +142 -34
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TypeControllerOptionsActions } from 'vona-module-a-openapi';
|
|
1
2
|
/** service: begin */
|
|
2
3
|
export * from '../service/imageNative.ts';
|
|
3
4
|
import 'vona-module-a-bean';
|
|
@@ -54,6 +55,38 @@ export interface IModuleImageProvider {
|
|
|
54
55
|
'native': ImageProviderNative;
|
|
55
56
|
}
|
|
56
57
|
/** imageProvider: end */
|
|
58
|
+
/** controller: begin */
|
|
59
|
+
export * from '../controller/image.ts';
|
|
60
|
+
import type { IControllerOptionsImage } from '../controller/image.ts';
|
|
61
|
+
import 'vona-module-a-web';
|
|
62
|
+
declare module 'vona-module-a-web' {
|
|
63
|
+
interface IControllerRecord {
|
|
64
|
+
'image-native:image': IControllerOptionsImage;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
declare module 'vona-module-image-native' {
|
|
68
|
+
interface ControllerImage {
|
|
69
|
+
}
|
|
70
|
+
interface ControllerImage {
|
|
71
|
+
get $beanFullName(): 'image-native.controller.image';
|
|
72
|
+
get $onionName(): 'image-native:image';
|
|
73
|
+
get $onionOptions(): IControllerOptionsImage;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** controller: end */
|
|
77
|
+
/** controller: begin */
|
|
78
|
+
import '../controller/image.ts';
|
|
79
|
+
declare module 'vona-module-image-native' {
|
|
80
|
+
interface IControllerOptionsImage {
|
|
81
|
+
actions?: TypeControllerOptionsActions<ControllerImage>;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
declare module 'vona-module-a-web' {
|
|
85
|
+
interface IApiPathPostRecord {
|
|
86
|
+
'/image-native/direct-upload/:resourceId': undefined;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** controller: end */
|
|
57
90
|
/** config: begin */
|
|
58
91
|
export * from '../config/config.ts';
|
|
59
92
|
import type { config } from '../config/config.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"AACA,qBAAqB;AACrB,cAAc,2BAA2B,CAAC;AAE1C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,QAAQ,oBAAoB,CAAC;IAEhC,UAAiB,cAAc;QAC7B,0BAA0B,EAAE,KAAK,CAAC;KACnC;CAGJ;AACD,OAAO,QAAQ,0BAA0B,CAAC;IAElC,UAAiB,kBAAkB;KAGlC;IAEC,UAAiB,kBAAkB;QACjC,IAAI,aAAa,IAAI,kCAAkC,CAAC;QACxD,IAAI,UAAU,IAAI,0BAA0B,CAAC;KAE9C;CACV;AACD,mBAAmB;AACnB,qBAAqB;AACrB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,kBAAkB,CAAC;CACnC;AACD,mBAAmB;AACnB,qBAAqB;AAErB,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,kBAAkB;QACjC,kCAAkC,EAAE,kBAAkB,CAAC;KACxD;CACF;AACD,mBAAmB;AACnB,2BAA2B;AAC3B,cAAc,iCAAiC,CAAC;AAChD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AACnF,OAAO,qBAAqB,CAAC;AAC7B,OAAO,QAAQ,qBAAqB,CAAC;IAEjC,UAAiB,oBAAoB;QACnC,qBAAqB,EAAE,2BAA2B,CAAC;KACpD;CAGJ;AACD,OAAO,QAAQ,0BAA0B,CAAC;IAElC,UAAiB,mBAAmB;KAGnC;IAEC,UAAiB,mBAAmB;QAClC,IAAI,aAAa,IAAI,mCAAmC,CAAC;QACzD,IAAI,UAAU,IAAI,qBAAqB,CAAC;QACxC,IAAI,aAAa,IAAI,2BAA2B,CAAC;KAClD;CACV;AACD,yBAAyB;AACzB,2BAA2B;AAC3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AACD,yBAAyB;AACzB,oBAAoB;AACpB,cAAc,qBAAqB,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,kBAAkB;AAClB,oBAAoB;AACpB,cAAc,cAAc,CAAC;AAC7B,kBAAkB;AAClB,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAGhF,qBACa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC,OAAO,MAAM,CAAC,CAAC;IACxC,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,oBAAoB,CAAC;CACnC;AAED,OAAO,MAAM,CAAC;AACd,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAiB,gBAAgB;QAC/B,cAAc,EAAE,sBAAsB,CAAC;KACxC;IAED,UAAiB,mBAAmB;QAClC,WAAW,EAAE,sBAAsB,CAAC;KACrC;IAED,UAAiB,gBAAgB;QAC/B,cAAc,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;KAC3C;CAKF;AACD,iBAAiB"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/.metadata/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IDecoratorImageProviderOptions, IImageDeliveryOptions, IImageDownloadResult, IImageProviderClientOptions, IImageProviderClientRecord, IImageProviderExecute, IImageProviderResource, IImageUploadInput, IImageVariantRequest } from 'vona-module-a-image';
|
|
1
|
+
import type { IDecoratorImageProviderOptions, IImageDeliveryOptions, IImageDirectUploadInput, IImageDownloadResult, IImageProviderClientOptions, IImageProviderClientRecord, IImageProviderExecute, IImageProviderResource, IImageUploadInput, IImageVariantRequest } from 'vona-module-a-image';
|
|
2
2
|
import type { EntityImage } from 'vona-module-a-image';
|
|
3
3
|
import { BeanBase } from 'vona';
|
|
4
4
|
export interface IImageProviderNativeClientRecord extends IImageProviderClientRecord {
|
|
@@ -10,8 +10,10 @@ export interface IImageProviderNativeClientOptions extends IImageProviderClientO
|
|
|
10
10
|
}
|
|
11
11
|
export interface IImageProviderOptionsNative extends IDecoratorImageProviderOptions<IImageProviderNativeClientRecord, IImageProviderNativeClientOptions> {
|
|
12
12
|
}
|
|
13
|
-
export declare class ImageProviderNative extends BeanBase implements IImageProviderExecute {
|
|
13
|
+
export declare class ImageProviderNative extends BeanBase implements IImageProviderExecute<IImageProviderNativeClientOptions, IImageProviderOptionsNative> {
|
|
14
14
|
upload(input: IImageUploadInput, clientOptions: IImageProviderNativeClientOptions, _options: IImageProviderOptionsNative): Promise<IImageProviderResource>;
|
|
15
|
+
createDirectUpload(input: IImageDirectUploadInput, clientOptions: IImageProviderNativeClientOptions, _options: IImageProviderOptionsNative): Promise<import("vona-module-a-image").IImageProviderDirectUploadResource<import("vona-module-a-image").TypeImageMeta, unknown>>;
|
|
16
|
+
finalizeDirectUpload(image: EntityImage, clientOptions: IImageProviderNativeClientOptions, _options: IImageProviderOptionsNative): Promise<IImageProviderResource<import("vona-module-a-image").TypeImageMeta, unknown> | undefined>;
|
|
15
17
|
get(image: EntityImage, clientOptions: IImageProviderNativeClientOptions, _options: IImageProviderOptionsNative): Promise<{
|
|
16
18
|
resourceId: string;
|
|
17
19
|
filename: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageProvider.native.d.ts","sourceRoot":"","sources":["../../src/bean/imageProvider.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAAG;AAEvF,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B,CACjF,gCAAgC,EAChC,iCAAiC,CAClC;CAAG;AAEJ,qBAMa,
|
|
1
|
+
{"version":3,"file":"imageProvider.native.d.ts","sourceRoot":"","sources":["../../src/bean/imageProvider.native.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAC9B,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGhC,MAAM,WAAW,gCAAiC,SAAQ,0BAA0B;CAAG;AAEvF,MAAM,WAAW,iCAAkC,SAAQ,2BAA2B;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA4B,SAAQ,8BAA8B,CACjF,gCAAgC,EAChC,iCAAiC,CAClC;CAAG;AAEJ,qBAMa,mBACX,SAAQ,QACR,YAAW,qBAAqB,CAAC,iCAAiC,EAAE,2BAA2B,CAAC;IAE1F,MAAM,CACV,KAAK,EAAE,iBAAiB,EACxB,aAAa,EAAE,iCAAiC,EAChD,QAAQ,EAAE,2BAA2B,GACpC,OAAO,CAAC,sBAAsB,CAAC;IAU5B,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,EAC9B,aAAa,EAAE,iCAAiC,EAChD,QAAQ,EAAE,2BAA2B;IAKjC,oBAAoB,CACxB,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,iCAAiC,EAChD,QAAQ,EAAE,2BAA2B;IAKjC,GAAG,CACP,KAAK,EAAE,WAAW,EAClB,aAAa,EAAE,iCAAiC,EAChD,QAAQ,EAAE,2BAA2B;;;;;;;;;;;;;IAiBjC,MAAM,CACV,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,2BAA2B,EAC3C,QAAQ,EAAE,2BAA2B;IAKjC,aAAa,CACjB,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,iCAAiC,EAChD,QAAQ,EAAE,2BAA2B,EACrC,eAAe,CAAC,EAAE,qBAAqB;IAcnC,QAAQ,CACZ,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,iCAAiC,EAChD,OAAO,EAAE,2BAA2B,EACpC,eAAe,CAAC,EAAE,qBAAqB,GACtC,OAAO,CAAC,oBAAoB,CAAC;CA0BjC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IUploadFile } from 'vona-module-a-upload';
|
|
2
|
+
import type { IDecoratorControllerOptions } from 'vona-module-a-web';
|
|
3
|
+
import { BeanBase } from 'vona';
|
|
4
|
+
export interface IControllerOptionsImage extends IDecoratorControllerOptions {
|
|
5
|
+
}
|
|
6
|
+
export declare class ControllerImage extends BeanBase {
|
|
7
|
+
directUpload(resourceId: string, token: string, file: IUploadFile): Promise<{
|
|
8
|
+
ok: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/controller/image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAKhC,MAAM,WAAW,uBAAwB,SAAQ,2BAA2B;CAAG;AAE/E,qBACa,eAAgB,SAAQ,QAAQ;IAIrC,YAAY,CACS,UAAU,EAAE,MAAM,EACvB,KAAK,EAAE,MAAM,EACd,IAAI,EAAE,WAAW;;;CAqCvC"}
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { BeanInfo, BeanBase, uuidv4, BeanSimple, cast, getPlatformArch, resolveAddon, BeanScopeBase } from 'vona';
|
|
2
|
-
import { __decorate } from 'tslib';
|
|
2
|
+
import { __decorate, __param, __metadata } from 'tslib';
|
|
3
3
|
import fse from 'fs-extra';
|
|
4
4
|
import { createHash } from 'node:crypto';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { Service, Scope } from 'vona-module-a-bean';
|
|
7
7
|
import { resolveImageVariantRequestToTransform, ImageProvider } from 'vona-module-a-image';
|
|
8
|
+
import { Core } from 'vona-module-a-core';
|
|
9
|
+
import { Passport } from 'vona-module-a-user';
|
|
10
|
+
import { Web, Arg, Controller } from 'vona-module-a-web';
|
|
8
11
|
|
|
9
12
|
let ServiceImageNative = class ServiceImageNative extends BeanBase {
|
|
10
13
|
constructor(...args) {
|
|
@@ -18,37 +21,75 @@ let ServiceImageNative = class ServiceImageNative extends BeanBase {
|
|
|
18
21
|
return this._sharpInstance;
|
|
19
22
|
}
|
|
20
23
|
async upload(input, options) {
|
|
21
|
-
const publicPath = await this.app.util.getPublicPathPhysical(path.join('image-native', options.subdir ?? 'default'), true);
|
|
22
24
|
const resourceId = uuidv4();
|
|
23
|
-
const
|
|
24
|
-
const targetName = `${resourceId}${ext}`;
|
|
25
|
-
const targetPath = path.join(publicPath, targetName);
|
|
25
|
+
const targetPath = await this._getFinalPath(resourceId, input.filename, options, input.file);
|
|
26
26
|
await fse.copy(input.file, targetPath);
|
|
27
|
-
|
|
28
|
-
const metadata = await sharp(targetPath).metadata();
|
|
29
|
-
const stat = await fse.stat(targetPath);
|
|
30
|
-
const variants = options.variants ?? this.scope.config.imageNative.variants;
|
|
31
|
-
await this._generateNamedVariants({
|
|
27
|
+
return await this._buildStoredResource(targetPath, {
|
|
32
28
|
resourceId,
|
|
33
29
|
filename: input.filename,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
30
|
+
contentType: input.contentType,
|
|
31
|
+
meta: input.meta,
|
|
32
|
+
requireSignedURLs: input.requireSignedURLs ?? options.requireSignedURLs,
|
|
33
|
+
variants: options.variants ?? this.scope.config.imageNative.variants,
|
|
34
|
+
deliveryBaseUrl: options.deliveryBaseUrl
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async createDirectUpload(input, options) {
|
|
38
|
+
const resourceId = this._sanitizeResourceId(input.customId) ?? uuidv4();
|
|
39
|
+
const storagePath = await this._getFinalPath(resourceId, input.filename, options);
|
|
40
|
+
const routePath = this.scope.util.combineApiPath(`image-native/direct-upload/${encodeURIComponent(resourceId)}`, false, true);
|
|
41
|
+
const tokenPath = this.scope.util.combineApiPath('image-native/direct-upload/:resourceId', false, true);
|
|
42
|
+
const tokenPayload = await this.bean.imageUploadPolicy.createDirectUploadToken({
|
|
43
|
+
resourceId,
|
|
44
|
+
path: tokenPath
|
|
45
|
+
});
|
|
46
|
+
const uploadUrl = new URL(this.app.util.getAbsoluteUrlByApiPath(routePath));
|
|
47
|
+
uploadUrl.searchParams.set('token', tokenPayload.token);
|
|
37
48
|
return {
|
|
38
49
|
resourceId,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
storagePath: targetPath,
|
|
43
|
-
deliveryBaseUrl: options.deliveryBaseUrl,
|
|
50
|
+
filename: input.filename,
|
|
51
|
+
contentType: input.contentType,
|
|
52
|
+
meta: input.meta,
|
|
44
53
|
requireSignedURLs: input.requireSignedURLs ?? options.requireSignedURLs,
|
|
45
|
-
variants
|
|
54
|
+
variants: options.variants ?? this.scope.config.imageNative.variants,
|
|
55
|
+
deliveryBaseUrl: options.deliveryBaseUrl,
|
|
56
|
+
storagePath,
|
|
57
|
+
uploadUrl: uploadUrl.toString(),
|
|
58
|
+
draft: true
|
|
46
59
|
};
|
|
47
60
|
}
|
|
61
|
+
async uploadDirectFile(image, file) {
|
|
62
|
+
const draftPath = this._getDraftPath(image.storagePath, image.resourceId);
|
|
63
|
+
await fse.ensureDir(path.dirname(draftPath));
|
|
64
|
+
await fse.move(file.file, draftPath, {
|
|
65
|
+
overwrite: true
|
|
66
|
+
});
|
|
67
|
+
return draftPath;
|
|
68
|
+
}
|
|
69
|
+
async finalizeDirectUpload(image, options) {
|
|
70
|
+
const storagePath = image.storagePath ?? (await this._getFinalPath(image.resourceId, image.filename, options));
|
|
71
|
+
const draftPath = this._getDraftPath(storagePath, image.resourceId);
|
|
72
|
+
if (!(await fse.pathExists(draftPath))) return undefined;
|
|
73
|
+
await fse.ensureDir(path.dirname(storagePath));
|
|
74
|
+
await fse.move(draftPath, storagePath, {
|
|
75
|
+
overwrite: true
|
|
76
|
+
});
|
|
77
|
+
return await this._buildStoredResource(storagePath, {
|
|
78
|
+
resourceId: image.resourceId,
|
|
79
|
+
filename: image.filename,
|
|
80
|
+
contentType: image.contentType,
|
|
81
|
+
meta: image.meta,
|
|
82
|
+
requireSignedURLs: image.requireSignedURLs ?? options.requireSignedURLs,
|
|
83
|
+
variants: image.variants ?? options.variants ?? this.scope.config.imageNative.variants,
|
|
84
|
+
deliveryBaseUrl: image.deliveryBaseUrl ?? options.deliveryBaseUrl
|
|
85
|
+
});
|
|
86
|
+
}
|
|
48
87
|
async remove(image) {
|
|
49
88
|
if (!image.storagePath) return;
|
|
50
89
|
const dir = path.dirname(image.storagePath);
|
|
51
90
|
if (!(await fse.pathExists(dir))) return;
|
|
91
|
+
const draftPath = this._getDraftPath(image.storagePath, image.resourceId);
|
|
92
|
+
await fse.remove(draftPath);
|
|
52
93
|
const entries = await fse.readdir(dir);
|
|
53
94
|
await Promise.all(entries.filter(name => name === path.basename(image.storagePath) || name.startsWith(`${image.resourceId}__`)).map(name => fse.remove(path.join(dir, name))));
|
|
54
95
|
}
|
|
@@ -60,18 +101,36 @@ let ServiceImageNative = class ServiceImageNative extends BeanBase {
|
|
|
60
101
|
const targetPath = await this._ensureVariantFile(image, resolved);
|
|
61
102
|
return await this._buildUrl(targetPath, options.deliveryBaseUrl);
|
|
62
103
|
}
|
|
63
|
-
async
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
104
|
+
async _buildStoredResource(targetPath, data) {
|
|
105
|
+
const sharp = await this.getSharp();
|
|
106
|
+
const metadata = await sharp(targetPath).metadata();
|
|
107
|
+
const stat = await fse.stat(targetPath);
|
|
108
|
+
return {
|
|
109
|
+
resourceId: data.resourceId,
|
|
110
|
+
filename: data.filename,
|
|
111
|
+
contentType: data.contentType,
|
|
112
|
+
size: Number(stat.size),
|
|
113
|
+
width: metadata.width,
|
|
114
|
+
height: metadata.height,
|
|
115
|
+
requireSignedURLs: data.requireSignedURLs,
|
|
116
|
+
variants: data.variants,
|
|
117
|
+
meta: data.meta,
|
|
118
|
+
storagePath: targetPath,
|
|
119
|
+
deliveryBaseUrl: data.deliveryBaseUrl
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
async _getFinalPath(resourceId, filename, options, filePath) {
|
|
123
|
+
const publicPath = await this.app.util.getPublicPathPhysical(path.join('image-native', options.subdir ?? 'default'), true);
|
|
124
|
+
const ext = this._getOriginalExt(filename, filePath ?? resourceId);
|
|
125
|
+
return path.join(publicPath, `${resourceId}${ext}`);
|
|
126
|
+
}
|
|
127
|
+
_getDraftPath(storagePath, resourceId) {
|
|
128
|
+
if (!storagePath) {
|
|
129
|
+
throw new Error(`Image storage path missing: ${resourceId}`);
|
|
70
130
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}, options);
|
|
131
|
+
const dir = path.dirname(storagePath);
|
|
132
|
+
const ext = path.extname(storagePath) || '.bin';
|
|
133
|
+
return path.join(dir, `${resourceId}__draft${ext}`);
|
|
75
134
|
}
|
|
76
135
|
async _ensureVariantFile(image, resolved) {
|
|
77
136
|
if (!image.storagePath) {
|
|
@@ -191,6 +250,11 @@ let ServiceImageNative = class ServiceImageNative extends BeanBase {
|
|
|
191
250
|
}
|
|
192
251
|
return JSON.stringify(value);
|
|
193
252
|
}
|
|
253
|
+
_sanitizeResourceId(resourceId) {
|
|
254
|
+
if (!resourceId) return undefined;
|
|
255
|
+
const sanitized = resourceId.replace(/[^\w.-]/g, '-');
|
|
256
|
+
return sanitized || undefined;
|
|
257
|
+
}
|
|
194
258
|
_sanitizeVariantName(variantName) {
|
|
195
259
|
return variantName.replace(/[^\w.-]/g, '-');
|
|
196
260
|
}
|
|
@@ -225,6 +289,12 @@ let ImageProviderNative = class ImageProviderNative extends BeanBase {
|
|
|
225
289
|
meta: input.meta
|
|
226
290
|
};
|
|
227
291
|
}
|
|
292
|
+
async createDirectUpload(input, clientOptions, _options) {
|
|
293
|
+
return await this.scope.service.imageNative.createDirectUpload(input, clientOptions);
|
|
294
|
+
}
|
|
295
|
+
async finalizeDirectUpload(image, clientOptions, _options) {
|
|
296
|
+
return await this.scope.service.imageNative.finalizeDirectUpload(image, clientOptions);
|
|
297
|
+
}
|
|
228
298
|
async get(image, clientOptions, _options) {
|
|
229
299
|
return {
|
|
230
300
|
resourceId: image.resourceId,
|
|
@@ -281,6 +351,47 @@ ImageProviderNative = __decorate([ImageProvider({
|
|
|
281
351
|
module: "image-native"
|
|
282
352
|
})], ImageProviderNative);
|
|
283
353
|
|
|
354
|
+
let ControllerImage = class ControllerImage extends BeanBase {
|
|
355
|
+
async directUpload(resourceId, token, file) {
|
|
356
|
+
const payload = await this.bean.imageUploadPolicy.verifyDirectUploadToken(token, this.ctx.route.routePathRaw);
|
|
357
|
+
if (payload.resourceId !== resourceId) {
|
|
358
|
+
return this.app.throw(401);
|
|
359
|
+
}
|
|
360
|
+
const modelImage = this.app.bean._getBean('a-image.model.image');
|
|
361
|
+
const image = await modelImage.get({
|
|
362
|
+
providerName: 'image-native:native',
|
|
363
|
+
resourceId
|
|
364
|
+
});
|
|
365
|
+
if (!image || image.status !== 'draft') {
|
|
366
|
+
return this.app.throw(403, `image is not draft: ${resourceId}`);
|
|
367
|
+
}
|
|
368
|
+
if (!image.imageScene) {
|
|
369
|
+
throw new Error(`image scene missing: ${resourceId}`);
|
|
370
|
+
}
|
|
371
|
+
const stat = await fse.stat(file.file);
|
|
372
|
+
const policy = await this.bean.imageUploadPolicy.resolveUploadPolicy({
|
|
373
|
+
imageScene: image.imageScene,
|
|
374
|
+
size: Number(stat.size),
|
|
375
|
+
mimeType: file.info.mimeType
|
|
376
|
+
});
|
|
377
|
+
await this.bean.imageUploadPolicy.validateUploadFile({
|
|
378
|
+
file: file.file,
|
|
379
|
+
filename: file.info.filename,
|
|
380
|
+
mimeType: file.info.mimeType
|
|
381
|
+
}, policy);
|
|
382
|
+
await this.scope.service.imageNative.uploadDirectFile(image, file);
|
|
383
|
+
return {
|
|
384
|
+
ok: true
|
|
385
|
+
};
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
__decorate([Web.post('direct-upload/:resourceId'), Passport.public(), Core.fileUpload(), __param(0, Arg.param('resourceId')), __param(1, Arg.query('token')), __param(2, Arg.file('image')), __metadata("design:type", Function), __metadata("design:paramtypes", [String, String, Object]), __metadata("design:returntype", Promise)], ControllerImage.prototype, "directUpload", null);
|
|
389
|
+
ControllerImage = __decorate([Controller({
|
|
390
|
+
path: 'image-native'
|
|
391
|
+
}), BeanInfo({
|
|
392
|
+
module: "image-native"
|
|
393
|
+
})], ControllerImage);
|
|
394
|
+
|
|
284
395
|
function config(_app) {
|
|
285
396
|
return {
|
|
286
397
|
imageNative: {
|
|
@@ -320,5 +431,5 @@ ScopeModuleImageNative = __decorate([Scope(), BeanInfo({
|
|
|
320
431
|
})], ScopeModuleImageNative);
|
|
321
432
|
/** scope: end */
|
|
322
433
|
|
|
323
|
-
export { ImageProviderNative, Monkey, ScopeModuleImageNative, ServiceImageNative, config };
|
|
434
|
+
export { ControllerImage, ImageProviderNative, Monkey, ScopeModuleImageNative, ServiceImageNative, config };
|
|
324
435
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/service/imageNative.ts","../src/bean/imageProvider.native.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null],"names":["ServiceImageNative","BeanBase","constructor","args","_sharpInstance","getSharp","default","upload","input","options","publicPath","app","util","getPublicPathPhysical","path","join","subdir","resourceId","uuidv4","ext","_getOriginalExt","filename","file","targetName","targetPath","fse","copy","sharp","metadata","stat","variants","scope","config","imageNative","_generateNamedVariants","storagePath","size","Number","width","height","deliveryBaseUrl","requireSignedURLs","remove","image","dir","dirname","pathExists","entries","readdir","Promise","all","filter","name","basename","startsWith","map","getVariantUrl","request","_deliveryOptions","resolved","resolveImageVariantRequestToTransform","variantName","_isOriginalTransform","transformOptions","_getOriginalUrl","_ensureVariantFile","_buildUrl","variantNames","Object","keys","original","Error","_getVariantAbsolutePath","_writeTransformedFile","sourcePath","ensureDir","overwrite","pipeline","failOn","dpr","Math","round","fit","gravity","background","resize","_mapFit","position","_mapGravity","rotate","undefined","sharpen","sigma","format","_normalizeFormat","jpeg","quality","png","webp","avif","toFile","variantPath","_getVariantStaticPath","replace","combineStaticPath","publicRoot","relativePath","relative","split","sep","posix","ctx","instance","id","toString","_getVariantExt","_sanitizeVariantName","cacheKey","_buildTransformCacheKey","extname","filePath","stable","_stableStringify","createHash","update","digest","slice","value","Array","isArray","item","sort","a","b","localeCompare","key","JSON","stringify","length","__decorate","Service","__z_BeanInfo","module","ImageProviderNative","clientOptions","_options","resource","service","contentType","meta","get","delete","_clientOptions","deliveryOptions","download","responseMode","signed","buffer","readFile","kind","url","ImageProvider","base","signedDeliveryKind","_app","__Version","__MapTargetNames","Monkey","BeanSimple","appStart","cast","__prepareSharpLibvips","platformArch","getPlatformArch","addonFileSrc","resolveAddon","addonDirDest","import","addonFileDest","existsSync","ensureDirSync","copyFileSync","ScopeModuleImageNative","BeanScopeBase","Scope"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/service/imageNative.ts","../src/bean/imageProvider.native.ts","../src/controller/image.ts","../src/config/config.ts","../src/monkey.ts","../src/.metadata/index.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["ServiceImageNative","BeanBase","constructor","args","_sharpInstance","getSharp","default","upload","input","options","resourceId","uuidv4","targetPath","_getFinalPath","filename","file","fse","copy","_buildStoredResource","contentType","meta","requireSignedURLs","variants","scope","config","imageNative","deliveryBaseUrl","createDirectUpload","_sanitizeResourceId","customId","storagePath","routePath","util","combineApiPath","encodeURIComponent","tokenPath","tokenPayload","bean","imageUploadPolicy","createDirectUploadToken","path","uploadUrl","URL","app","getAbsoluteUrlByApiPath","searchParams","set","token","toString","draft","uploadDirectFile","image","draftPath","_getDraftPath","ensureDir","dirname","move","overwrite","finalizeDirectUpload","pathExists","undefined","remove","dir","entries","readdir","Promise","all","filter","name","basename","startsWith","map","join","getVariantUrl","request","_deliveryOptions","resolved","resolveImageVariantRequestToTransform","variantName","_isOriginalTransform","transformOptions","_getOriginalUrl","_ensureVariantFile","_buildUrl","data","sharp","metadata","stat","size","Number","width","height","filePath","publicPath","getPublicPathPhysical","subdir","ext","_getOriginalExt","Error","extname","_getVariantAbsolutePath","_writeTransformedFile","sourcePath","pipeline","failOn","dpr","Math","round","fit","gravity","background","resize","_mapFit","position","_mapGravity","rotate","sharpen","sigma","format","_normalizeFormat","jpeg","quality","png","webp","avif","toFile","variantPath","_getVariantStaticPath","replace","combineStaticPath","publicRoot","relativePath","relative","split","sep","posix","ctx","instance","id","_getVariantExt","_sanitizeVariantName","cacheKey","_buildTransformCacheKey","stable","_stableStringify","createHash","update","digest","slice","value","Array","isArray","item","Object","sort","a","b","localeCompare","key","JSON","stringify","sanitized","keys","length","__decorate","Service","__z_BeanInfo","module","ImageProviderNative","clientOptions","_options","resource","service","get","delete","_clientOptions","deliveryOptions","download","responseMode","signed","buffer","readFile","kind","url","ImageProvider","base","signedDeliveryKind","ControllerImage","directUpload","payload","verifyDirectUploadToken","route","routePathRaw","throw","modelImage","_getBean","providerName","status","imageScene","policy","resolveUploadPolicy","mimeType","info","validateUploadFile","ok","Web","post","Passport","public","Core","fileUpload","__param","Arg","param","query","prototype","Controller","_app","original","__Version","__MapTargetNames","Monkey","BeanSimple","appStart","cast","__prepareSharpLibvips","platformArch","getPlatformArch","addonFileSrc","resolveAddon","addonDirDest","import","addonFileDest","existsSync","ensureDirSync","copyFileSync","ScopeModuleImageNative","BeanScopeBase","Scope"],"mappings":"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"}
|
|
@@ -1,14 +1,21 @@
|
|
|
1
|
-
import type { EntityImage, IImageDeliveryOptions, IImageProviderResource, IImageUploadInput, IImageVariantRequest } from 'vona-module-a-image';
|
|
1
|
+
import type { EntityImage, IImageDeliveryOptions, IImageDirectUploadInput, IImageProviderDirectUploadResource, IImageProviderResource, IImageUploadInput, IImageVariantRequest } from 'vona-module-a-image';
|
|
2
|
+
import type { IUploadFile } from 'vona-module-a-upload';
|
|
2
3
|
import { BeanBase } from 'vona';
|
|
3
4
|
import type { IImageProviderNativeClientOptions } from '../bean/imageProvider.native.ts';
|
|
4
5
|
type IImageNativeStoredImage = Pick<EntityImage, 'resourceId' | 'filename' | 'storagePath' | 'variants'>;
|
|
6
|
+
type IImageNativeDraftImage = Pick<EntityImage, 'resourceId' | 'filename' | 'contentType' | 'meta' | 'imageScene' | 'requireSignedURLs' | 'storagePath' | 'deliveryBaseUrl' | 'variants' | 'clientName'>;
|
|
5
7
|
export declare class ServiceImageNative extends BeanBase {
|
|
6
8
|
private _sharpInstance;
|
|
7
9
|
private getSharp;
|
|
8
10
|
upload(input: IImageUploadInput, options: IImageProviderNativeClientOptions): Promise<IImageProviderResource>;
|
|
11
|
+
createDirectUpload(input: IImageDirectUploadInput, options: IImageProviderNativeClientOptions): Promise<IImageProviderDirectUploadResource>;
|
|
12
|
+
uploadDirectFile(image: IImageNativeDraftImage, file: IUploadFile): Promise<string>;
|
|
13
|
+
finalizeDirectUpload(image: IImageNativeDraftImage, options: IImageProviderNativeClientOptions): Promise<IImageProviderResource | undefined>;
|
|
9
14
|
remove(image: IImageNativeStoredImage): Promise<void>;
|
|
10
15
|
getVariantUrl(image: IImageNativeStoredImage, request: IImageVariantRequest, options: IImageProviderNativeClientOptions, _deliveryOptions?: IImageDeliveryOptions): Promise<string>;
|
|
11
|
-
private
|
|
16
|
+
private _buildStoredResource;
|
|
17
|
+
private _getFinalPath;
|
|
18
|
+
private _getDraftPath;
|
|
12
19
|
private _ensureVariantFile;
|
|
13
20
|
private _writeTransformedFile;
|
|
14
21
|
private _getOriginalUrl;
|
|
@@ -20,6 +27,7 @@ export declare class ServiceImageNative extends BeanBase {
|
|
|
20
27
|
private _normalizeFormat;
|
|
21
28
|
private _buildTransformCacheKey;
|
|
22
29
|
private _stableStringify;
|
|
30
|
+
private _sanitizeResourceId;
|
|
23
31
|
private _sanitizeVariantName;
|
|
24
32
|
private _isOriginalTransform;
|
|
25
33
|
private _mapFit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imageNative.d.ts","sourceRoot":"","sources":["../../src/service/imageNative.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,
|
|
1
|
+
{"version":3,"file":"imageNative.d.ts","sourceRoot":"","sources":["../../src/service/imageNative.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,kCAAkC,EAElC,sBAAsB,EAEtB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKxD,OAAO,EAAE,QAAQ,EAAU,MAAM,MAAM,CAAC;AAIxC,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,iCAAiC,CAAC;AAEzF,KAAK,uBAAuB,GAAG,IAAI,CACjC,WAAW,EACX,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,CACvD,CAAC;AAEF,KAAK,sBAAsB,GAAG,IAAI,CAChC,WAAW,EACT,YAAY,GACZ,UAAU,GACV,aAAa,GACb,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,iBAAiB,GACjB,UAAU,GACV,YAAY,CACf,CAAC;AAEF,qBACa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAO,CAAC,cAAc,CAAmB;YAE3B,QAAQ;IAOhB,MAAM,CACV,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,sBAAsB,CAAC;IAe5B,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,kCAAkC,CAAC;IAiCxC,gBAAgB,CAAC,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,WAAW;IAOjE,oBAAoB,CACxB,KAAK,EAAE,sBAAsB,EAC7B,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAkBxC,MAAM,CAAC,KAAK,EAAE,uBAAuB;IAiBrC,aAAa,CACjB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,iCAAiC,EAC1C,gBAAgB,CAAC,EAAE,qBAAqB;YAa5B,oBAAoB;YA8BpB,aAAa;IAc3B,OAAO,CAAC,aAAa;YASP,kBAAkB;YAclB,qBAAqB;YAsDrB,eAAe;YAUf,SAAS;YAQT,qBAAqB;YAMrB,uBAAuB;IAerC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,WAAW;CAOpB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vona-module-image-native",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Vona Module"
|
|
@@ -38,7 +38,11 @@
|
|
|
38
38
|
"title": "image-native",
|
|
39
39
|
"vonaModule": {
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"a-
|
|
41
|
+
"a-core": "5.0.0",
|
|
42
|
+
"a-image": "5.0.0",
|
|
43
|
+
"a-upload": "5.0.0",
|
|
44
|
+
"a-user": "5.0.0",
|
|
45
|
+
"a-web": "5.0.0"
|
|
42
46
|
},
|
|
43
47
|
"globalDependencies": {
|
|
44
48
|
"sharp": true
|
|
@@ -52,5 +56,5 @@
|
|
|
52
56
|
"monkey": true
|
|
53
57
|
}
|
|
54
58
|
},
|
|
55
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "e6ba99cf7fcb42ab5bc46591e48bd071d7a35a7a"
|
|
56
60
|
}
|
package/src/.metadata/index.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
// eslint-disable
|
|
2
|
+
import type { TypeControllerOptionsActions } from 'vona-module-a-openapi';
|
|
2
3
|
/** service: begin */
|
|
3
4
|
export * from '../service/imageNative.ts';
|
|
4
5
|
|
|
@@ -72,6 +73,42 @@ export interface IModuleImageProvider {
|
|
|
72
73
|
'native': ImageProviderNative;
|
|
73
74
|
}
|
|
74
75
|
/** imageProvider: end */
|
|
76
|
+
/** controller: begin */
|
|
77
|
+
export * from '../controller/image.ts';
|
|
78
|
+
import type { IControllerOptionsImage } from '../controller/image.ts';
|
|
79
|
+
import 'vona-module-a-web';
|
|
80
|
+
declare module 'vona-module-a-web' {
|
|
81
|
+
export interface IControllerRecord {
|
|
82
|
+
'image-native:image': IControllerOptionsImage;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
declare module 'vona-module-image-native' {
|
|
86
|
+
export interface ControllerImage {
|
|
87
|
+
/** @internal */
|
|
88
|
+
get scope(): ScopeModuleImageNative;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface ControllerImage {
|
|
92
|
+
get $beanFullName(): 'image-native.controller.image';
|
|
93
|
+
get $onionName(): 'image-native:image';
|
|
94
|
+
get $onionOptions(): IControllerOptionsImage;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** controller: end */
|
|
98
|
+
/** controller: begin */
|
|
99
|
+
// @ts-ignore ignore
|
|
100
|
+
import type { ControllerImage } from '../controller/image.ts';
|
|
101
|
+
declare module 'vona-module-image-native' {
|
|
102
|
+
export interface IControllerOptionsImage {
|
|
103
|
+
actions?: TypeControllerOptionsActions<ControllerImage>;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
declare module 'vona-module-a-web' {
|
|
107
|
+
export interface IApiPathPostRecord {
|
|
108
|
+
'/image-native/direct-upload/:resourceId': undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** controller: end */
|
|
75
112
|
/** config: begin */
|
|
76
113
|
export * from '../config/config.ts';
|
|
77
114
|
import type { config } from '../config/config.ts';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type {
|
|
2
2
|
IDecoratorImageProviderOptions,
|
|
3
3
|
IImageDeliveryOptions,
|
|
4
|
+
IImageDirectUploadInput,
|
|
4
5
|
IImageDownloadResult,
|
|
5
6
|
IImageProviderClientOptions,
|
|
6
7
|
IImageProviderClientRecord,
|
|
@@ -34,7 +35,10 @@ export interface IImageProviderOptionsNative extends IDecoratorImageProviderOpti
|
|
|
34
35
|
signedDeliveryKind: 'proxy',
|
|
35
36
|
},
|
|
36
37
|
})
|
|
37
|
-
export class ImageProviderNative
|
|
38
|
+
export class ImageProviderNative
|
|
39
|
+
extends BeanBase
|
|
40
|
+
implements IImageProviderExecute<IImageProviderNativeClientOptions, IImageProviderOptionsNative>
|
|
41
|
+
{
|
|
38
42
|
async upload(
|
|
39
43
|
input: IImageUploadInput,
|
|
40
44
|
clientOptions: IImageProviderNativeClientOptions,
|
|
@@ -49,6 +53,22 @@ export class ImageProviderNative extends BeanBase implements IImageProviderExecu
|
|
|
49
53
|
};
|
|
50
54
|
}
|
|
51
55
|
|
|
56
|
+
async createDirectUpload(
|
|
57
|
+
input: IImageDirectUploadInput,
|
|
58
|
+
clientOptions: IImageProviderNativeClientOptions,
|
|
59
|
+
_options: IImageProviderOptionsNative,
|
|
60
|
+
) {
|
|
61
|
+
return await this.scope.service.imageNative.createDirectUpload(input, clientOptions);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async finalizeDirectUpload(
|
|
65
|
+
image: EntityImage,
|
|
66
|
+
clientOptions: IImageProviderNativeClientOptions,
|
|
67
|
+
_options: IImageProviderOptionsNative,
|
|
68
|
+
) {
|
|
69
|
+
return await this.scope.service.imageNative.finalizeDirectUpload(image, clientOptions);
|
|
70
|
+
}
|
|
71
|
+
|
|
52
72
|
async get(
|
|
53
73
|
image: EntityImage,
|
|
54
74
|
clientOptions: IImageProviderNativeClientOptions,
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { IUploadFile } from 'vona-module-a-upload';
|
|
2
|
+
import type { IDecoratorControllerOptions } from 'vona-module-a-web';
|
|
3
|
+
|
|
4
|
+
import fse from 'fs-extra';
|
|
5
|
+
import { BeanBase } from 'vona';
|
|
6
|
+
import { Core } from 'vona-module-a-core';
|
|
7
|
+
import { Passport } from 'vona-module-a-user';
|
|
8
|
+
import { Arg, Controller, Web } from 'vona-module-a-web';
|
|
9
|
+
|
|
10
|
+
export interface IControllerOptionsImage extends IDecoratorControllerOptions {}
|
|
11
|
+
|
|
12
|
+
@Controller<IControllerOptionsImage>({ path: 'image-native' })
|
|
13
|
+
export class ControllerImage extends BeanBase {
|
|
14
|
+
@Web.post('direct-upload/:resourceId')
|
|
15
|
+
@Passport.public()
|
|
16
|
+
@Core.fileUpload()
|
|
17
|
+
async directUpload(
|
|
18
|
+
@Arg.param('resourceId') resourceId: string,
|
|
19
|
+
@Arg.query('token') token: string,
|
|
20
|
+
@Arg.file('image') file: IUploadFile,
|
|
21
|
+
) {
|
|
22
|
+
const payload = await this.bean.imageUploadPolicy.verifyDirectUploadToken(
|
|
23
|
+
token,
|
|
24
|
+
this.ctx.route.routePathRaw,
|
|
25
|
+
);
|
|
26
|
+
if (payload.resourceId !== resourceId) {
|
|
27
|
+
return this.app.throw(401);
|
|
28
|
+
}
|
|
29
|
+
const modelImage = this.app.bean._getBean<any>('a-image.model.image' as never);
|
|
30
|
+
const image = await modelImage.get({
|
|
31
|
+
providerName: 'image-native:native',
|
|
32
|
+
resourceId,
|
|
33
|
+
});
|
|
34
|
+
if (!image || image.status !== 'draft') {
|
|
35
|
+
return this.app.throw(403, `image is not draft: ${resourceId}`);
|
|
36
|
+
}
|
|
37
|
+
if (!image.imageScene) {
|
|
38
|
+
throw new Error(`image scene missing: ${resourceId}`);
|
|
39
|
+
}
|
|
40
|
+
const stat = await fse.stat(file.file);
|
|
41
|
+
const policy = await this.bean.imageUploadPolicy.resolveUploadPolicy({
|
|
42
|
+
imageScene: image.imageScene,
|
|
43
|
+
size: Number(stat.size),
|
|
44
|
+
mimeType: file.info.mimeType,
|
|
45
|
+
});
|
|
46
|
+
await this.bean.imageUploadPolicy.validateUploadFile(
|
|
47
|
+
{
|
|
48
|
+
file: file.file,
|
|
49
|
+
filename: file.info.filename,
|
|
50
|
+
mimeType: file.info.mimeType,
|
|
51
|
+
},
|
|
52
|
+
policy,
|
|
53
|
+
);
|
|
54
|
+
await this.scope.service.imageNative.uploadDirectFile(image, file);
|
|
55
|
+
return { ok: true };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
@@ -2,13 +2,15 @@ import type { SharpConstructor } from 'sharp';
|
|
|
2
2
|
import type {
|
|
3
3
|
EntityImage,
|
|
4
4
|
IImageDeliveryOptions,
|
|
5
|
-
|
|
5
|
+
IImageDirectUploadInput,
|
|
6
|
+
IImageProviderDirectUploadResource,
|
|
6
7
|
IImageProviderResolvedVariant,
|
|
7
8
|
IImageProviderResource,
|
|
8
9
|
IImageTransformOptions,
|
|
9
10
|
IImageUploadInput,
|
|
10
11
|
IImageVariantRequest,
|
|
11
12
|
} from 'vona-module-a-image';
|
|
13
|
+
import type { IUploadFile } from 'vona-module-a-upload';
|
|
12
14
|
|
|
13
15
|
import fse from 'fs-extra';
|
|
14
16
|
import { createHash } from 'node:crypto';
|
|
@@ -24,6 +26,20 @@ type IImageNativeStoredImage = Pick<
|
|
|
24
26
|
'resourceId' | 'filename' | 'storagePath' | 'variants'
|
|
25
27
|
>;
|
|
26
28
|
|
|
29
|
+
type IImageNativeDraftImage = Pick<
|
|
30
|
+
EntityImage,
|
|
31
|
+
| 'resourceId'
|
|
32
|
+
| 'filename'
|
|
33
|
+
| 'contentType'
|
|
34
|
+
| 'meta'
|
|
35
|
+
| 'imageScene'
|
|
36
|
+
| 'requireSignedURLs'
|
|
37
|
+
| 'storagePath'
|
|
38
|
+
| 'deliveryBaseUrl'
|
|
39
|
+
| 'variants'
|
|
40
|
+
| 'clientName'
|
|
41
|
+
>;
|
|
42
|
+
|
|
27
43
|
@Service()
|
|
28
44
|
export class ServiceImageNative extends BeanBase {
|
|
29
45
|
private _sharpInstance: SharpConstructor;
|
|
@@ -39,39 +55,90 @@ export class ServiceImageNative extends BeanBase {
|
|
|
39
55
|
input: IImageUploadInput,
|
|
40
56
|
options: IImageProviderNativeClientOptions,
|
|
41
57
|
): Promise<IImageProviderResource> {
|
|
42
|
-
const publicPath = await this.app.util.getPublicPathPhysical(
|
|
43
|
-
path.join('image-native', options.subdir ?? 'default'),
|
|
44
|
-
true,
|
|
45
|
-
);
|
|
46
58
|
const resourceId = uuidv4();
|
|
47
|
-
const
|
|
48
|
-
const targetName = `${resourceId}${ext}`;
|
|
49
|
-
const targetPath = path.join(publicPath, targetName);
|
|
59
|
+
const targetPath = await this._getFinalPath(resourceId, input.filename, options, input.file);
|
|
50
60
|
await fse.copy(input.file, targetPath);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
options,
|
|
61
|
+
return await this._buildStoredResource(targetPath, {
|
|
62
|
+
resourceId,
|
|
63
|
+
filename: input.filename,
|
|
64
|
+
contentType: input.contentType,
|
|
65
|
+
meta: input.meta,
|
|
66
|
+
requireSignedURLs: input.requireSignedURLs ?? options.requireSignedURLs,
|
|
67
|
+
variants: options.variants ?? this.scope.config.imageNative.variants,
|
|
68
|
+
deliveryBaseUrl: options.deliveryBaseUrl,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
async createDirectUpload(
|
|
73
|
+
input: IImageDirectUploadInput,
|
|
74
|
+
options: IImageProviderNativeClientOptions,
|
|
75
|
+
): Promise<IImageProviderDirectUploadResource> {
|
|
76
|
+
const resourceId = this._sanitizeResourceId(input.customId) ?? uuidv4();
|
|
77
|
+
const storagePath = await this._getFinalPath(resourceId, input.filename, options);
|
|
78
|
+
const routePath = this.scope.util.combineApiPath(
|
|
79
|
+
`image-native/direct-upload/${encodeURIComponent(resourceId)}`,
|
|
80
|
+
false,
|
|
81
|
+
true,
|
|
58
82
|
);
|
|
83
|
+
const tokenPath = this.scope.util.combineApiPath(
|
|
84
|
+
'image-native/direct-upload/:resourceId',
|
|
85
|
+
false,
|
|
86
|
+
true,
|
|
87
|
+
);
|
|
88
|
+
const tokenPayload = await this.bean.imageUploadPolicy.createDirectUploadToken({
|
|
89
|
+
resourceId,
|
|
90
|
+
path: tokenPath,
|
|
91
|
+
});
|
|
92
|
+
const uploadUrl = new URL(this.app.util.getAbsoluteUrlByApiPath(routePath));
|
|
93
|
+
uploadUrl.searchParams.set('token', tokenPayload.token);
|
|
59
94
|
return {
|
|
60
95
|
resourceId,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
storagePath: targetPath,
|
|
65
|
-
deliveryBaseUrl: options.deliveryBaseUrl,
|
|
96
|
+
filename: input.filename,
|
|
97
|
+
contentType: input.contentType,
|
|
98
|
+
meta: input.meta,
|
|
66
99
|
requireSignedURLs: input.requireSignedURLs ?? options.requireSignedURLs,
|
|
67
|
-
variants,
|
|
100
|
+
variants: options.variants ?? this.scope.config.imageNative.variants,
|
|
101
|
+
deliveryBaseUrl: options.deliveryBaseUrl,
|
|
102
|
+
storagePath,
|
|
103
|
+
uploadUrl: uploadUrl.toString(),
|
|
104
|
+
draft: true,
|
|
68
105
|
};
|
|
69
106
|
}
|
|
70
107
|
|
|
108
|
+
async uploadDirectFile(image: IImageNativeDraftImage, file: IUploadFile) {
|
|
109
|
+
const draftPath = this._getDraftPath(image.storagePath, image.resourceId);
|
|
110
|
+
await fse.ensureDir(path.dirname(draftPath));
|
|
111
|
+
await fse.move(file.file, draftPath, { overwrite: true });
|
|
112
|
+
return draftPath;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
async finalizeDirectUpload(
|
|
116
|
+
image: IImageNativeDraftImage,
|
|
117
|
+
options: IImageProviderNativeClientOptions,
|
|
118
|
+
): Promise<IImageProviderResource | undefined> {
|
|
119
|
+
const storagePath =
|
|
120
|
+
image.storagePath ?? (await this._getFinalPath(image.resourceId, image.filename, options));
|
|
121
|
+
const draftPath = this._getDraftPath(storagePath, image.resourceId);
|
|
122
|
+
if (!(await fse.pathExists(draftPath))) return undefined;
|
|
123
|
+
await fse.ensureDir(path.dirname(storagePath));
|
|
124
|
+
await fse.move(draftPath, storagePath, { overwrite: true });
|
|
125
|
+
return await this._buildStoredResource(storagePath, {
|
|
126
|
+
resourceId: image.resourceId,
|
|
127
|
+
filename: image.filename,
|
|
128
|
+
contentType: image.contentType,
|
|
129
|
+
meta: image.meta,
|
|
130
|
+
requireSignedURLs: image.requireSignedURLs ?? options.requireSignedURLs,
|
|
131
|
+
variants: image.variants ?? options.variants ?? this.scope.config.imageNative.variants,
|
|
132
|
+
deliveryBaseUrl: image.deliveryBaseUrl ?? options.deliveryBaseUrl,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
|
|
71
136
|
async remove(image: IImageNativeStoredImage) {
|
|
72
137
|
if (!image.storagePath) return;
|
|
73
138
|
const dir = path.dirname(image.storagePath);
|
|
74
139
|
if (!(await fse.pathExists(dir))) return;
|
|
140
|
+
const draftPath = this._getDraftPath(image.storagePath, image.resourceId);
|
|
141
|
+
await fse.remove(draftPath);
|
|
75
142
|
const entries = await fse.readdir(dir);
|
|
76
143
|
await Promise.all(
|
|
77
144
|
entries
|
|
@@ -100,22 +167,57 @@ export class ServiceImageNative extends BeanBase {
|
|
|
100
167
|
return await this._buildUrl(targetPath, options.deliveryBaseUrl);
|
|
101
168
|
}
|
|
102
169
|
|
|
103
|
-
private async
|
|
104
|
-
|
|
170
|
+
private async _buildStoredResource(
|
|
171
|
+
targetPath: string,
|
|
172
|
+
data: {
|
|
173
|
+
resourceId: string;
|
|
174
|
+
filename?: string;
|
|
175
|
+
contentType?: string;
|
|
176
|
+
meta?: Record<string, unknown>;
|
|
177
|
+
requireSignedURLs?: boolean;
|
|
178
|
+
variants?: EntityImage['variants'];
|
|
179
|
+
deliveryBaseUrl?: string;
|
|
180
|
+
},
|
|
181
|
+
): Promise<IImageProviderResource> {
|
|
182
|
+
const sharp = await this.getSharp();
|
|
183
|
+
const metadata = await sharp(targetPath).metadata();
|
|
184
|
+
const stat = await fse.stat(targetPath);
|
|
185
|
+
return {
|
|
186
|
+
resourceId: data.resourceId,
|
|
187
|
+
filename: data.filename,
|
|
188
|
+
contentType: data.contentType,
|
|
189
|
+
size: Number(stat.size),
|
|
190
|
+
width: metadata.width,
|
|
191
|
+
height: metadata.height,
|
|
192
|
+
requireSignedURLs: data.requireSignedURLs,
|
|
193
|
+
variants: data.variants,
|
|
194
|
+
meta: data.meta,
|
|
195
|
+
storagePath: targetPath,
|
|
196
|
+
deliveryBaseUrl: data.deliveryBaseUrl,
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
private async _getFinalPath(
|
|
201
|
+
resourceId: string,
|
|
202
|
+
filename: string | undefined,
|
|
105
203
|
options: IImageProviderNativeClientOptions,
|
|
204
|
+
filePath?: string,
|
|
106
205
|
) {
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
206
|
+
const publicPath = await this.app.util.getPublicPathPhysical(
|
|
207
|
+
path.join('image-native', options.subdir ?? 'default'),
|
|
208
|
+
true,
|
|
209
|
+
);
|
|
210
|
+
const ext = this._getOriginalExt(filename, filePath ?? resourceId);
|
|
211
|
+
return path.join(publicPath, `${resourceId}${ext}`);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
private _getDraftPath(storagePath: string | undefined, resourceId: string) {
|
|
215
|
+
if (!storagePath) {
|
|
216
|
+
throw new Error(`Image storage path missing: ${resourceId}`);
|
|
116
217
|
}
|
|
117
|
-
|
|
118
|
-
|
|
218
|
+
const dir = path.dirname(storagePath);
|
|
219
|
+
const ext = path.extname(storagePath) || '.bin';
|
|
220
|
+
return path.join(dir, `${resourceId}__draft${ext}`);
|
|
119
221
|
}
|
|
120
222
|
|
|
121
223
|
private async _ensureVariantFile(
|
|
@@ -266,6 +368,12 @@ export class ServiceImageNative extends BeanBase {
|
|
|
266
368
|
return JSON.stringify(value);
|
|
267
369
|
}
|
|
268
370
|
|
|
371
|
+
private _sanitizeResourceId(resourceId: string | undefined) {
|
|
372
|
+
if (!resourceId) return undefined;
|
|
373
|
+
const sanitized = resourceId.replace(/[^\w.-]/g, '-');
|
|
374
|
+
return sanitized || undefined;
|
|
375
|
+
}
|
|
376
|
+
|
|
269
377
|
private _sanitizeVariantName(variantName: string) {
|
|
270
378
|
return variantName.replace(/[^\w.-]/g, '-');
|
|
271
379
|
}
|