@lark-apaas/dataloom 0.1.3-alpha.0 → 0.1.3-alpha.10
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/README.md +1 -1
- package/lib/DataloomClient.js +1 -1
- package/lib/storage/StorageClient.d.ts +1 -1
- package/lib/storage/libs/fetch.d.ts +7 -0
- package/lib/storage/libs/fetch.d.ts.map +1 -1
- package/lib/storage/libs/fetch.js +1 -0
- package/lib/storage/libs/helpers.d.ts +1 -1
- package/lib/storage/libs/helpers.d.ts.map +1 -1
- package/lib/storage/libs/helpers.js +40 -24
- package/lib/storage/libs/types.d.ts +8 -6
- package/lib/storage/libs/types.d.ts.map +1 -1
- package/lib/storage/packages/StorageFileApi.d.ts +3 -2
- package/lib/storage/packages/StorageFileApi.d.ts.map +1 -1
- package/lib/storage/packages/StorageFileApi.js +26 -21
- package/lib/storage/utils/logger.d.ts.map +1 -1
- package/lib/storage/utils/logger.js +11 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -70,7 +70,7 @@ createClient(options?: DataloomClientOptions)
|
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
storage 网关前缀由 `options.global.appId` 自动拼接为
|
|
73
|
-
`/app/${appId}/
|
|
73
|
+
`/app/${appId}/__runtime__/api/v1/storage`,浏览器自动携带 session cookie 完成鉴权。
|
|
74
74
|
|
|
75
75
|
#### 入参
|
|
76
76
|
|
package/lib/DataloomClient.js
CHANGED
|
@@ -5,7 +5,7 @@ import { DEFAULT_GLOBAL_OPTIONS } from "./utils/constants.js";
|
|
|
5
5
|
import { withCredentialsFetch } from "./utils/fetch.js";
|
|
6
6
|
import { applySettingDefaults } from "./utils/helpers.js";
|
|
7
7
|
import { reportDataloomException } from "./utils/slardar.js";
|
|
8
|
-
const buildStorageUrl = (appId)=>`/app/${appId}/
|
|
8
|
+
const buildStorageUrl = (appId)=>`/app/${appId}/__runtime__/api/v1/storage`;
|
|
9
9
|
class DataloomClient {
|
|
10
10
|
constructor(options){
|
|
11
11
|
const DEFAULTS = {
|
|
@@ -9,7 +9,7 @@ export interface StorageClientOptions {
|
|
|
9
9
|
}
|
|
10
10
|
export declare class StorageClient {
|
|
11
11
|
/**
|
|
12
|
-
* Storage 网关前缀,形如 `/app/${appId}/
|
|
12
|
+
* Storage 网关前缀,形如 `/app/${appId}/__runtime__/api/v1/storage`,
|
|
13
13
|
* 浏览器同源 + cookie 鉴权。
|
|
14
14
|
*/
|
|
15
15
|
protected url: string;
|
|
@@ -8,6 +8,13 @@ export interface FetchOptions {
|
|
|
8
8
|
noResolveJson?: boolean;
|
|
9
9
|
logFetch?: boolean;
|
|
10
10
|
onRequestError?: (error: OnRequestErrorType) => void;
|
|
11
|
+
/**
|
|
12
|
+
* 透传到底层 fetch init 的 credentials。
|
|
13
|
+
* 不传时由 `withCredentialsFetch` 兜底为 `'include'`(同源网关请求需要);
|
|
14
|
+
* TOS / CDN 等返回 `Access-Control-Allow-Origin: *` 的跨域第三方 URL 必须显式
|
|
15
|
+
* `'omit'`,否则浏览器会拦截。
|
|
16
|
+
*/
|
|
17
|
+
credentials?: RequestCredentials;
|
|
11
18
|
}
|
|
12
19
|
export interface ExtraInfo {
|
|
13
20
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/fetch.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/fetch.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAEnE,MAAM,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAExF,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE;QACR,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACrD;;;;;OAKG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AA0O3E,wBAAsB,GAAG,CACvB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,GAAG,CACvB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CAYlB;AAED,wBAAsB,MAAM,CAC1B,OAAO,EAAE,KAAK,EACd,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,YAAY,EACtB,UAAU,CAAC,EAAE,eAAe,EAC5B,MAAM,CAAC,EAAE,SAAS,GACjB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -60,6 +60,7 @@ const _getRequestParams = (method, options, parameters, body)=>{
|
|
|
60
60
|
method,
|
|
61
61
|
headers: options?.headers || {}
|
|
62
62
|
};
|
|
63
|
+
if (options?.credentials !== void 0) params.credentials = options.credentials;
|
|
63
64
|
if ('GET' === method || !body) return params;
|
|
64
65
|
if (isPlainObject(body)) {
|
|
65
66
|
params.headers = {
|
|
@@ -9,7 +9,7 @@ export declare const recursiveToCamel: (item: Record<string, unknown>) => unknow
|
|
|
9
9
|
* source: https://github.com/sindresorhus/is-plain-obj
|
|
10
10
|
*/
|
|
11
11
|
export declare const isPlainObject: (value: object) => boolean;
|
|
12
|
-
export declare const getUpdateFileSize: (file: FileBody) =>
|
|
12
|
+
export declare const getUpdateFileSize: (file: FileBody) => number;
|
|
13
13
|
export declare const toValidExpiresIn: (expiresIn: number) => number;
|
|
14
14
|
export declare const transformFilePayload: (file: Record<string, unknown> | null | undefined) => FileObject;
|
|
15
15
|
export declare const sanitizeFileName: (fileName: string) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIpD,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjF,eAAO,MAAM,YAAY,GAAI,cAAc,KAAK,KAAG,KAQlD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,OAAO,QAAQ,CAE/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAmBhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAa7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ,KAAG,MAqBlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,WAQjD,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIpD,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEjF,eAAO,MAAM,YAAY,GAAI,cAAc,KAAK,KAAG,KAQlD,CAAC;AAEF,eAAO,MAAM,eAAe,QAAa,OAAO,CAAC,OAAO,QAAQ,CAE/D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAG,OAmBhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,KAAG,OAa7C,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,QAAQ,KAAG,MAqBlD,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,WAAW,MAAM,WAQjD,CAAC;AAkBF,eAAO,MAAM,oBAAoB,GAC/B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,KAC/C,UAgDF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,MAAM,WAMhD,CAAC;AAKF,eAAO,MAAM,oBAAoB,GAAI,KAAK,MAAM,YAE/C,CAAC"}
|
|
@@ -21,43 +21,59 @@ const isPlainObject = (value)=>{
|
|
|
21
21
|
return (null === prototype || prototype === Object.prototype || null === Object.getPrototypeOf(prototype)) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);
|
|
22
22
|
};
|
|
23
23
|
const getUpdateFileSize = (file)=>{
|
|
24
|
-
if ('undefined' != typeof File && file instanceof File) return file.size
|
|
25
|
-
if (file instanceof Blob) return file.size
|
|
26
|
-
if (file instanceof URLSearchParams) return file.size
|
|
27
|
-
if ('string' == typeof file) return file.length
|
|
28
|
-
if (ArrayBuffer.isView(file)) return file.byteLength
|
|
29
|
-
if (file instanceof ArrayBuffer) return file.byteLength
|
|
30
|
-
return
|
|
24
|
+
if ('undefined' != typeof File && file instanceof File) return file.size;
|
|
25
|
+
if (file instanceof Blob) return file.size;
|
|
26
|
+
if (file instanceof URLSearchParams) return file.size;
|
|
27
|
+
if ('string' == typeof file) return file.length;
|
|
28
|
+
if (ArrayBuffer.isView(file)) return file.byteLength;
|
|
29
|
+
if (file instanceof ArrayBuffer) return file.byteLength;
|
|
30
|
+
return 0;
|
|
31
31
|
};
|
|
32
32
|
const toValidExpiresIn = (expiresIn)=>{
|
|
33
33
|
if (expiresIn < 1) return 1;
|
|
34
34
|
if (expiresIn > THIRTY_DAYS_IN_SECONDS) return THIRTY_DAYS_IN_SECONDS;
|
|
35
35
|
return expiresIn;
|
|
36
36
|
};
|
|
37
|
+
const pickUserId = (user)=>{
|
|
38
|
+
if (!user) return '';
|
|
39
|
+
if ('string' == typeof user) return user;
|
|
40
|
+
if ('object' == typeof user) {
|
|
41
|
+
const u = user;
|
|
42
|
+
return u.userID ?? u.user_id ?? '';
|
|
43
|
+
}
|
|
44
|
+
return '';
|
|
45
|
+
};
|
|
37
46
|
const transformFilePayload = (file)=>{
|
|
38
47
|
const safeFile = file ?? {};
|
|
39
|
-
const
|
|
48
|
+
const bucketID = safeFile.bucketID ?? safeFile.bucket_id ?? '';
|
|
49
|
+
const createdAt = safeFile.createdAt ?? safeFile.created_at ?? '';
|
|
50
|
+
const updatedAt = safeFile.updatedAt ?? safeFile.updated_at ?? '';
|
|
51
|
+
const lastAccessedAt = safeFile.lastAccessedAt ?? safeFile.last_accessed_at;
|
|
52
|
+
const createdBy = pickUserId(safeFile.createdBy ?? safeFile.created_by);
|
|
53
|
+
const updatedBy = pickUserId(safeFile.updatedBy ?? safeFile.updated_by);
|
|
54
|
+
const owner = createdBy;
|
|
55
|
+
const buckets = safeFile.bucket ?? safeFile.buckets ?? {};
|
|
40
56
|
return {
|
|
41
57
|
name: safeFile.name ?? '',
|
|
42
|
-
bucket_id:
|
|
43
|
-
owner
|
|
58
|
+
bucket_id: bucketID,
|
|
59
|
+
owner,
|
|
44
60
|
id: safeFile.id ?? '',
|
|
45
|
-
updated_at:
|
|
46
|
-
created_at:
|
|
47
|
-
created_by:
|
|
48
|
-
updated_by:
|
|
49
|
-
last_accessed_at:
|
|
61
|
+
updated_at: updatedAt,
|
|
62
|
+
created_at: createdAt,
|
|
63
|
+
created_by: createdBy,
|
|
64
|
+
updated_by: updatedBy,
|
|
65
|
+
last_accessed_at: lastAccessedAt,
|
|
50
66
|
metadata: safeFile.metadata ?? {},
|
|
51
67
|
buckets: {
|
|
52
|
-
allowed_mime_types: buckets
|
|
53
|
-
created_at: buckets
|
|
54
|
-
file_size_limit: buckets
|
|
55
|
-
id: buckets
|
|
56
|
-
name: buckets
|
|
57
|
-
public: buckets
|
|
58
|
-
updated_at: buckets
|
|
59
|
-
updated_by: buckets
|
|
60
|
-
owner: buckets
|
|
68
|
+
allowed_mime_types: buckets.allowedMimeTypes ?? buckets.allowed_mime_types ?? [],
|
|
69
|
+
created_at: buckets.createdAt ?? buckets.created_at ?? '',
|
|
70
|
+
file_size_limit: buckets.fileSizeLimit ?? buckets.file_size_limit ?? 0,
|
|
71
|
+
id: buckets.id ?? '',
|
|
72
|
+
name: buckets.name ?? '',
|
|
73
|
+
public: buckets.public ?? false,
|
|
74
|
+
updated_at: buckets.updatedAt ?? buckets.updated_at ?? '',
|
|
75
|
+
updated_by: pickUserId(buckets.updatedBy ?? buckets.updated_by),
|
|
76
|
+
owner: pickUserId(buckets.createdBy ?? buckets.created_by)
|
|
61
77
|
}
|
|
62
78
|
};
|
|
63
79
|
};
|
|
@@ -114,14 +114,16 @@ export interface FileOptionsV2 {
|
|
|
114
114
|
*/
|
|
115
115
|
contentDisposition?: string;
|
|
116
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* pre_upload 请求体(按 §5.1 规范,驼峰)。
|
|
119
|
+
* 注意:bucketId 已在 path 段提供,不重复传;contentDisposition 不在规范字段内。
|
|
120
|
+
*/
|
|
117
121
|
export interface PreUploadBody {
|
|
118
|
-
|
|
119
|
-
file_size: string;
|
|
122
|
+
fileSize: number;
|
|
120
123
|
upsert?: boolean;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
file_name?: string;
|
|
124
|
+
filePath?: string;
|
|
125
|
+
fileName?: string;
|
|
126
|
+
contentType?: string;
|
|
125
127
|
}
|
|
126
128
|
export interface DestinationOptions {
|
|
127
129
|
destinationBucket?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/libs/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -178,8 +178,9 @@ export default class StorageFileApi {
|
|
|
178
178
|
private _isValidDownloadUrl;
|
|
179
179
|
/**
|
|
180
180
|
* Get the filePath from download url with format like
|
|
181
|
-
* /spark/app/app_xxxx/
|
|
182
|
-
* or /app/app_xxxx/
|
|
181
|
+
* /spark/app/app_xxxx/__runtime__/api/v1/storage/object/bucket_xxx/123%2Fimage.png
|
|
182
|
+
* or /app/app_xxxx/__runtime__/api/v1/storage/object/bucket_xxx/123%2Fimage.png
|
|
183
|
+
* (兼容历史 `/runtime/` 形态)
|
|
183
184
|
*/
|
|
184
185
|
private _retrieveFilePathFromDownloadUrl;
|
|
185
186
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageFileApi.d.ts","sourceRoot":"","sources":["../../../src/storage/packages/StorageFileApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,KAAK,EAA0B,MAAM,eAAe,CAAC;AASnE,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,kBAAkB,EAElB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACf,MAAM,eAAe,CAAC;AAqDvB,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACvB,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;gBAG7D,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO,EACvC,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,KAAK,EACb,aAAa,CAAC,EAAE,OAAO,EACvB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI;IAWtD;;;;;;OAMG;YACW,cAAc;
|
|
1
|
+
{"version":3,"file":"StorageFileApi.d.ts","sourceRoot":"","sources":["../../../src/storage/packages/StorageFileApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,11 +33,13 @@ class StorageFileApi {
|
|
|
33
33
|
if (options?.contentDisposition) contentDisposition = options?.contentDisposition;
|
|
34
34
|
else if (fileBody instanceof File) contentDisposition = fileBody?.name;
|
|
35
35
|
const preUploadBody = {
|
|
36
|
-
|
|
37
|
-
file_size: getUpdateFileSize(fileBody),
|
|
36
|
+
fileSize: getUpdateFileSize(fileBody),
|
|
38
37
|
upsert: options.upsert ?? false,
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
filePath: cleanPath,
|
|
39
|
+
fileName: fileBody instanceof File ? fileBody?.name : '',
|
|
40
|
+
...options.contentType ? {
|
|
41
|
+
contentType: options.contentType
|
|
42
|
+
} : {}
|
|
41
43
|
};
|
|
42
44
|
const res = await post(this.fetch, `${this.url}/object/${this.bucketId}/pre_upload`, preUploadBody, {
|
|
43
45
|
headers: this.headers,
|
|
@@ -46,19 +48,20 @@ class StorageFileApi {
|
|
|
46
48
|
}, void 0, {
|
|
47
49
|
psmName: 'Storage.Upload.PreUpload'
|
|
48
50
|
});
|
|
49
|
-
const {
|
|
50
|
-
if (!
|
|
51
|
+
const { uploadID, uploadUrl } = res?.data ?? {};
|
|
52
|
+
if (!uploadUrl || !uploadID) return {
|
|
51
53
|
data: null,
|
|
52
|
-
error: new StorageError('
|
|
54
|
+
error: new StorageError('uploadUrl or uploadID is empty')
|
|
53
55
|
};
|
|
54
56
|
{
|
|
55
57
|
const tosHeaders = {};
|
|
56
58
|
if (contentDisposition) tosHeaders['content-disposition'] = `attachment; filename="${sanitizeFileName(contentDisposition)}"`;
|
|
57
59
|
if (options.cacheControl || 0 === options.cacheControl) tosHeaders['cache-control'] = `max-age=${options.cacheControl}`;
|
|
58
60
|
if (options.contentType) tosHeaders['content-type'] = options.contentType;
|
|
59
|
-
const tosRes = await put(this.fetch,
|
|
61
|
+
const tosRes = await put(this.fetch, uploadUrl, fileBody, {
|
|
60
62
|
noResolveJson: true,
|
|
61
63
|
headers: tosHeaders,
|
|
64
|
+
credentials: 'omit',
|
|
62
65
|
logFetch: this.loggerEnabled,
|
|
63
66
|
onRequestError: this.onRequestError
|
|
64
67
|
}, void 0, {
|
|
@@ -66,9 +69,8 @@ class StorageFileApi {
|
|
|
66
69
|
});
|
|
67
70
|
const etag = tosRes?.headers?.get('Etag') ?? '';
|
|
68
71
|
const callbackRes = await post(this.fetch, `${this.url}/object/callback`, {
|
|
69
|
-
|
|
70
|
-
etag
|
|
71
|
-
app_id: this.appId
|
|
72
|
+
uploadID,
|
|
73
|
+
eTag: etag
|
|
72
74
|
}, {
|
|
73
75
|
headers: this.headers,
|
|
74
76
|
logFetch: this.loggerEnabled,
|
|
@@ -76,12 +78,13 @@ class StorageFileApi {
|
|
|
76
78
|
}, void 0, {
|
|
77
79
|
psmName: 'Storage.Upload.Callback'
|
|
78
80
|
});
|
|
81
|
+
const vo = callbackRes?.data ?? {};
|
|
79
82
|
return {
|
|
80
|
-
data:
|
|
81
|
-
id: '',
|
|
82
|
-
file_path: '',
|
|
83
|
-
bucket_id: '',
|
|
84
|
-
download_url: ''
|
|
83
|
+
data: {
|
|
84
|
+
id: vo.id ?? '',
|
|
85
|
+
file_path: vo.filePath ?? vo.file_path ?? '',
|
|
86
|
+
bucket_id: vo.bucketID ?? vo.bucket_id ?? '',
|
|
87
|
+
download_url: vo.downloadURL ?? vo.download_url ?? ''
|
|
85
88
|
},
|
|
86
89
|
error: null
|
|
87
90
|
};
|
|
@@ -113,7 +116,7 @@ class StorageFileApi {
|
|
|
113
116
|
try {
|
|
114
117
|
const _path = this._getFinalPath(path);
|
|
115
118
|
const res = await post(this.fetch, `${this.url}/object/sign/${_path}`, {
|
|
116
|
-
|
|
119
|
+
expiresIn: toValidExpiresIn(expiresIn)
|
|
117
120
|
}, {
|
|
118
121
|
headers: this.headers,
|
|
119
122
|
logFetch: this.loggerEnabled,
|
|
@@ -140,7 +143,7 @@ class StorageFileApi {
|
|
|
140
143
|
try {
|
|
141
144
|
const _paths = paths.map((path)=>this._retrieveFilePathFromDownloadUrl(path));
|
|
142
145
|
const res = await post(this.fetch, `${this.url}/object/sign/${this.bucketId}`, {
|
|
143
|
-
|
|
146
|
+
expiresIn: toValidExpiresIn(expiresIn),
|
|
144
147
|
paths: _paths
|
|
145
148
|
}, {
|
|
146
149
|
headers: this.headers,
|
|
@@ -261,7 +264,9 @@ class StorageFileApi {
|
|
|
261
264
|
error: null
|
|
262
265
|
};
|
|
263
266
|
}
|
|
264
|
-
const response = await this.fetch(url
|
|
267
|
+
const response = await this.fetch(url, {
|
|
268
|
+
credentials: 'omit'
|
|
269
|
+
});
|
|
265
270
|
if (!response.ok) return {
|
|
266
271
|
data: null,
|
|
267
272
|
error: new StorageError(`Failed to download file from URL: ${response.status} ${response.statusText}`)
|
|
@@ -325,7 +330,7 @@ class StorageFileApi {
|
|
|
325
330
|
}
|
|
326
331
|
}
|
|
327
332
|
generateDownloadUrlFromFilePath(filePath) {
|
|
328
|
-
return `/app/${this.appId}/
|
|
333
|
+
return `/app/${this.appId}/__runtime__/api/v1/storage/object/${this.bucketId}/${encodeURIComponent(this._removeEmptyFolders(filePath))}`;
|
|
329
334
|
}
|
|
330
335
|
encodeMetadata(metadata) {
|
|
331
336
|
return JSON.stringify(metadata);
|
|
@@ -343,7 +348,7 @@ class StorageFileApi {
|
|
|
343
348
|
return path.replace(/^\/|\/$/g, '').replace(/\/+/g, '/');
|
|
344
349
|
}
|
|
345
350
|
_isValidDownloadUrl(url) {
|
|
346
|
-
return /^(\/spark)?\/app\/app_[\w]+\/runtime\/api\/v1\/storage\/object\//.test(url);
|
|
351
|
+
return /^(\/spark)?\/app\/app_[\w]+\/(__runtime__|runtime)\/api\/v1\/storage\/object\//.test(url);
|
|
347
352
|
}
|
|
348
353
|
_retrieveFilePathFromDownloadUrl(url) {
|
|
349
354
|
if (!this._isValidDownloadUrl(url)) return url;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/storage/utils/logger.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,EAAE,gBAAmB,
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/storage/utils/logger.ts"],"names":[],"mappings":"AAAA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9D,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,EAAE,gBAAmB,SA+BhE,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC3D,gBAAmB,SA0BpB,CAAC"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
const logRequest = (params, psmName = 'Storage')=>{
|
|
2
2
|
const { traceId, url, method, body } = params;
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
const base = 'undefined' != typeof window && window.location?.origin ? window.location.origin : 'http://localhost';
|
|
4
|
+
let decodedParams = [];
|
|
5
|
+
try {
|
|
6
|
+
decodedParams = Array.from(new URL(url, base).searchParams.entries()).filter(([key])=>![
|
|
7
|
+
'count',
|
|
8
|
+
'tx',
|
|
9
|
+
'missing',
|
|
10
|
+
'resolution',
|
|
11
|
+
'column'
|
|
12
|
+
].includes(key)).map(([key, value])=>`${key}=${value}`);
|
|
13
|
+
} catch {}
|
|
10
14
|
console.log(`[Dataloom][${psmName}][Request]`, 'trace id:', traceId, 'method:', method, 'params:', decodedParams.join(','), 'body:', body);
|
|
11
15
|
};
|
|
12
16
|
const logResponse = (traceId, response, psmName = 'Storage')=>{
|