@or-sdk/files 0.20.1-createfilespackage.1 → 0.20.1-createfilespackage.11
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/cjs/Files.js +42 -127
- package/dist/cjs/Files.js.map +1 -1
- package/dist/esm/Files.js +38 -92
- package/dist/esm/Files.js.map +1 -1
- package/dist/types/Files.d.ts +7 -16
- package/dist/types/types.d.ts +21 -18
- package/package.json +4 -3
- package/src/Files.ts +103 -114
- package/src/types.ts +23 -14
package/dist/cjs/Files.js
CHANGED
|
@@ -70,18 +70,21 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
70
70
|
}
|
|
71
71
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
72
72
|
};
|
|
73
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
74
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
75
|
+
};
|
|
73
76
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
74
77
|
exports.Files = void 0;
|
|
78
|
+
var axios_1 = __importDefault(require("axios"));
|
|
75
79
|
var base_1 = require("@or-sdk/base");
|
|
76
80
|
var constants_1 = require("./constants");
|
|
77
81
|
var Files = (function (_super) {
|
|
78
82
|
__extends(Files, _super);
|
|
79
83
|
function Files(params) {
|
|
80
|
-
var token = params.token, discoveryUrl = params.discoveryUrl,
|
|
84
|
+
var token = params.token, discoveryUrl = params.discoveryUrl, serviceUrl = params.serviceUrl;
|
|
81
85
|
return _super.call(this, {
|
|
82
86
|
token: token,
|
|
83
87
|
discoveryUrl: discoveryUrl,
|
|
84
|
-
accountId: accountId,
|
|
85
88
|
serviceUrl: serviceUrl,
|
|
86
89
|
serviceKey: constants_1.SERVICE_KEY,
|
|
87
90
|
}) || this;
|
|
@@ -92,7 +95,7 @@ var Files = (function (_super) {
|
|
|
92
95
|
return __generator(this, function (_a) {
|
|
93
96
|
switch (_a.label) {
|
|
94
97
|
case 0: return [4, this.callApi({
|
|
95
|
-
method: '
|
|
98
|
+
method: 'get',
|
|
96
99
|
route: 'api/folder',
|
|
97
100
|
params: { key: key },
|
|
98
101
|
})];
|
|
@@ -103,7 +106,7 @@ var Files = (function (_super) {
|
|
|
103
106
|
});
|
|
104
107
|
});
|
|
105
108
|
};
|
|
106
|
-
Files.prototype.getItemsList = function (isPublic,
|
|
109
|
+
Files.prototype.getItemsList = function (isPublic, treePrefix) {
|
|
107
110
|
return __awaiter(this, void 0, void 0, function () {
|
|
108
111
|
var nextToken, totalItems, queryParams, _a, items, nextTokenResponse;
|
|
109
112
|
return __generator(this, function (_b) {
|
|
@@ -115,7 +118,7 @@ var Files = (function (_super) {
|
|
|
115
118
|
case 1:
|
|
116
119
|
queryParams = {
|
|
117
120
|
isPublic: isPublic,
|
|
118
|
-
prefix:
|
|
121
|
+
prefix: treePrefix,
|
|
119
122
|
};
|
|
120
123
|
if (nextToken)
|
|
121
124
|
queryParams.nextToken = nextToken;
|
|
@@ -173,18 +176,18 @@ var Files = (function (_super) {
|
|
|
173
176
|
});
|
|
174
177
|
});
|
|
175
178
|
};
|
|
176
|
-
Files.prototype.
|
|
179
|
+
Files.prototype.duplicateFile = function (key, newKey, isPublic) {
|
|
177
180
|
return __awaiter(this, void 0, void 0, function () {
|
|
178
181
|
return __generator(this, function (_a) {
|
|
179
182
|
switch (_a.label) {
|
|
180
183
|
case 0: return [4, this.callApi({
|
|
181
|
-
method: '
|
|
182
|
-
route: 'api/files',
|
|
184
|
+
method: 'put',
|
|
185
|
+
route: 'api/files/duplicate',
|
|
183
186
|
params: {
|
|
184
187
|
key: key,
|
|
185
188
|
isPublic: isPublic,
|
|
186
189
|
},
|
|
187
|
-
data: {
|
|
190
|
+
data: { newKey: newKey },
|
|
188
191
|
})];
|
|
189
192
|
case 1:
|
|
190
193
|
_a.sent();
|
|
@@ -193,17 +196,18 @@ var Files = (function (_super) {
|
|
|
193
196
|
});
|
|
194
197
|
});
|
|
195
198
|
};
|
|
196
|
-
Files.prototype.
|
|
199
|
+
Files.prototype.changePrivacy = function (key, newPrivacy, isPublic) {
|
|
197
200
|
return __awaiter(this, void 0, void 0, function () {
|
|
198
201
|
return __generator(this, function (_a) {
|
|
199
202
|
switch (_a.label) {
|
|
200
203
|
case 0: return [4, this.callApi({
|
|
201
|
-
method: '
|
|
204
|
+
method: 'patch',
|
|
202
205
|
route: 'api/files',
|
|
203
206
|
params: {
|
|
204
207
|
key: key,
|
|
205
208
|
isPublic: isPublic,
|
|
206
209
|
},
|
|
210
|
+
data: { newPrivacy: newPrivacy },
|
|
207
211
|
})];
|
|
208
212
|
case 1:
|
|
209
213
|
_a.sent();
|
|
@@ -212,29 +216,13 @@ var Files = (function (_super) {
|
|
|
212
216
|
});
|
|
213
217
|
});
|
|
214
218
|
};
|
|
215
|
-
Files.prototype.
|
|
219
|
+
Files.prototype.deleteFile = function (key, isPublic) {
|
|
216
220
|
return __awaiter(this, void 0, void 0, function () {
|
|
217
221
|
return __generator(this, function (_a) {
|
|
218
222
|
switch (_a.label) {
|
|
219
223
|
case 0: return [4, this.callApi({
|
|
220
224
|
method: 'delete',
|
|
221
|
-
route: 'api/
|
|
222
|
-
data: { key: key },
|
|
223
|
-
})];
|
|
224
|
-
case 1:
|
|
225
|
-
_a.sent();
|
|
226
|
-
return [2];
|
|
227
|
-
}
|
|
228
|
-
});
|
|
229
|
-
});
|
|
230
|
-
};
|
|
231
|
-
Files.prototype.getObjectSize = function (key, isPublic) {
|
|
232
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
233
|
-
return __generator(this, function (_a) {
|
|
234
|
-
switch (_a.label) {
|
|
235
|
-
case 0: return [4, this.callApi({
|
|
236
|
-
method: 'get',
|
|
237
|
-
route: 'api/folder',
|
|
225
|
+
route: 'api/files',
|
|
238
226
|
params: {
|
|
239
227
|
key: key,
|
|
240
228
|
isPublic: isPublic,
|
|
@@ -247,13 +235,14 @@ var Files = (function (_super) {
|
|
|
247
235
|
});
|
|
248
236
|
});
|
|
249
237
|
};
|
|
250
|
-
Files.prototype.
|
|
238
|
+
Files.prototype.deleteFolder = function (key) {
|
|
251
239
|
return __awaiter(this, void 0, void 0, function () {
|
|
252
240
|
return __generator(this, function (_a) {
|
|
253
241
|
switch (_a.label) {
|
|
254
242
|
case 0: return [4, this.callApi({
|
|
255
|
-
method: '
|
|
256
|
-
route: 'api/
|
|
243
|
+
method: 'delete',
|
|
244
|
+
route: 'api/folder',
|
|
245
|
+
data: { key: key },
|
|
257
246
|
})];
|
|
258
247
|
case 1:
|
|
259
248
|
_a.sent();
|
|
@@ -279,131 +268,57 @@ var Files = (function (_super) {
|
|
|
279
268
|
});
|
|
280
269
|
});
|
|
281
270
|
};
|
|
282
|
-
Files.prototype.
|
|
271
|
+
Files.prototype.getObjectInfo = function (key, isPublic) {
|
|
283
272
|
return __awaiter(this, void 0, void 0, function () {
|
|
284
273
|
return __generator(this, function (_a) {
|
|
285
274
|
switch (_a.label) {
|
|
286
275
|
case 0: return [4, this.callApi({
|
|
287
|
-
method: '
|
|
288
|
-
route: '
|
|
289
|
-
params: __assign({ postfix: postfix, name: name }, options),
|
|
290
|
-
})];
|
|
291
|
-
case 1: return [2, _a.sent()];
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
});
|
|
295
|
-
};
|
|
296
|
-
Files.prototype.getUploadUrl = function (data, isPublic) {
|
|
297
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
298
|
-
return __generator(this, function (_a) {
|
|
299
|
-
switch (_a.label) {
|
|
300
|
-
case 0: return [4, this.callApi({
|
|
301
|
-
method: 'post',
|
|
302
|
-
route: 'api/url',
|
|
276
|
+
method: 'get',
|
|
277
|
+
route: 'api/file',
|
|
303
278
|
params: {
|
|
279
|
+
key: key,
|
|
304
280
|
isPublic: isPublic,
|
|
305
281
|
},
|
|
306
|
-
data: __assign({}, data),
|
|
307
282
|
})];
|
|
308
283
|
case 1: return [2, _a.sent()];
|
|
309
284
|
}
|
|
310
285
|
});
|
|
311
286
|
});
|
|
312
287
|
};
|
|
313
|
-
Files.prototype.
|
|
314
|
-
return
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
files: files,
|
|
323
|
-
},
|
|
324
|
-
})];
|
|
325
|
-
case 1: return [2, _a.sent()];
|
|
326
|
-
}
|
|
327
|
-
});
|
|
288
|
+
Files.prototype.getUploadUrl = function (data, isPublic) {
|
|
289
|
+
return this.callApi({
|
|
290
|
+
method: 'post',
|
|
291
|
+
route: 'api/url',
|
|
292
|
+
params: {
|
|
293
|
+
isPublic: isPublic,
|
|
294
|
+
prefix: '',
|
|
295
|
+
},
|
|
296
|
+
data: __assign({}, data),
|
|
328
297
|
});
|
|
329
298
|
};
|
|
330
299
|
Files.prototype.uploadFile = function (file) {
|
|
331
300
|
return __awaiter(this, void 0, void 0, function () {
|
|
332
|
-
var _a, type, name, contentType,
|
|
301
|
+
var _a, type, name, contentType, _b, url, fields, formData;
|
|
333
302
|
return __generator(this, function (_c) {
|
|
334
303
|
switch (_c.label) {
|
|
335
304
|
case 0:
|
|
336
305
|
_a = file.fileModel, type = _a.type, name = _a.name;
|
|
337
306
|
contentType = type || 'binary/octet-stream';
|
|
338
|
-
cacheControl = file.ttl ? "max-age=".concat(file.ttl) : 'no-cache';
|
|
339
307
|
return [4, this.getUploadUrl({
|
|
340
308
|
contentType: contentType,
|
|
341
309
|
key: file.prefix + name,
|
|
342
|
-
|
|
343
|
-
cacheControl: cacheControl,
|
|
310
|
+
cacheControl: 'no-cache',
|
|
344
311
|
}, file.isPublic)];
|
|
345
312
|
case 1:
|
|
346
313
|
_b = _c.sent(), url = _b.url, fields = _b.fields;
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
formData.append(field.key, field.value);
|
|
314
|
+
formData = new FormData();
|
|
315
|
+
Object.entries(fields).forEach(function (value) {
|
|
316
|
+
formData.append(value[0], value[1]);
|
|
351
317
|
});
|
|
352
|
-
formData.append('cache-control',
|
|
318
|
+
formData.append('cache-control', 'no-cache');
|
|
353
319
|
formData.append('content-type', contentType);
|
|
354
|
-
formData.append('File', file.fileModel
|
|
355
|
-
return [
|
|
356
|
-
method: 'post',
|
|
357
|
-
route: url,
|
|
358
|
-
params: {
|
|
359
|
-
isPublic: file.isPublic,
|
|
360
|
-
},
|
|
361
|
-
data: { formData: formData },
|
|
362
|
-
})];
|
|
363
|
-
case 2: return [2, _c.sent()];
|
|
364
|
-
}
|
|
365
|
-
});
|
|
366
|
-
});
|
|
367
|
-
};
|
|
368
|
-
Files.prototype.uploadSystemFiles = function (postfix, files) {
|
|
369
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
370
|
-
var patchedFiles, uploadParams, FormDataLib, formData;
|
|
371
|
-
var _this = this;
|
|
372
|
-
return __generator(this, function (_a) {
|
|
373
|
-
switch (_a.label) {
|
|
374
|
-
case 0:
|
|
375
|
-
patchedFiles = files.map(function (file) {
|
|
376
|
-
var cacheControl = file.ttl ? "max-age=".concat(file.ttl) : 'no-cache';
|
|
377
|
-
return __assign(__assign({}, file), { cacheControl: cacheControl });
|
|
378
|
-
});
|
|
379
|
-
return [4, this.getSystemUploadUrl(postfix, patchedFiles)];
|
|
380
|
-
case 1:
|
|
381
|
-
uploadParams = _a.sent();
|
|
382
|
-
FormDataLib = FormData;
|
|
383
|
-
formData = new FormDataLib();
|
|
384
|
-
uploadParams.map(function (param, index) { return __awaiter(_this, void 0, void 0, function () {
|
|
385
|
-
var url, fields, file;
|
|
386
|
-
return __generator(this, function (_a) {
|
|
387
|
-
switch (_a.label) {
|
|
388
|
-
case 0:
|
|
389
|
-
url = param.url, fields = param.fields;
|
|
390
|
-
file = patchedFiles[index];
|
|
391
|
-
fields.forEach(function (value) {
|
|
392
|
-
formData.append(value.key, value);
|
|
393
|
-
});
|
|
394
|
-
formData.append('cache-control', file.cacheControl);
|
|
395
|
-
formData.append('content-type', file.contentType);
|
|
396
|
-
formData.append('File', file.fileDescriptor, file.name);
|
|
397
|
-
return [4, this.callApi({
|
|
398
|
-
method: 'post',
|
|
399
|
-
route: url,
|
|
400
|
-
data: { formData: formData },
|
|
401
|
-
})];
|
|
402
|
-
case 1: return [2, _a.sent()];
|
|
403
|
-
}
|
|
404
|
-
});
|
|
405
|
-
}); });
|
|
406
|
-
return [2];
|
|
320
|
+
formData.append('File', file.fileModel, name);
|
|
321
|
+
return [2, axios_1.default.post(url, formData)];
|
|
407
322
|
}
|
|
408
323
|
});
|
|
409
324
|
});
|
package/dist/cjs/Files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Files.js
CHANGED
|
@@ -7,15 +7,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
|
+
import axios from 'axios';
|
|
10
11
|
import { Base } from '@or-sdk/base';
|
|
11
12
|
import { SERVICE_KEY } from './constants';
|
|
12
13
|
export class Files extends Base {
|
|
13
14
|
constructor(params) {
|
|
14
|
-
const { token, discoveryUrl,
|
|
15
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
15
16
|
super({
|
|
16
17
|
token,
|
|
17
18
|
discoveryUrl,
|
|
18
|
-
accountId,
|
|
19
19
|
serviceUrl,
|
|
20
20
|
serviceKey: SERVICE_KEY,
|
|
21
21
|
});
|
|
@@ -23,21 +23,21 @@ export class Files extends Base {
|
|
|
23
23
|
getFolderSize(key) {
|
|
24
24
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
25
|
const { size } = yield this.callApi({
|
|
26
|
-
method: '
|
|
26
|
+
method: 'get',
|
|
27
27
|
route: 'api/folder',
|
|
28
28
|
params: { key },
|
|
29
29
|
});
|
|
30
30
|
return size;
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
getItemsList(isPublic,
|
|
33
|
+
getItemsList(isPublic, treePrefix) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
35
|
let nextToken = null;
|
|
36
36
|
let totalItems = [];
|
|
37
37
|
do {
|
|
38
38
|
const queryParams = {
|
|
39
39
|
isPublic,
|
|
40
|
-
prefix,
|
|
40
|
+
prefix: treePrefix,
|
|
41
41
|
};
|
|
42
42
|
if (nextToken)
|
|
43
43
|
queryParams.nextToken = nextToken;
|
|
@@ -74,45 +74,37 @@ export class Files extends Base {
|
|
|
74
74
|
});
|
|
75
75
|
});
|
|
76
76
|
}
|
|
77
|
-
|
|
77
|
+
duplicateFile(key, newKey, isPublic) {
|
|
78
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
79
79
|
yield this.callApi({
|
|
80
|
-
method: '
|
|
81
|
-
route: 'api/files',
|
|
80
|
+
method: 'put',
|
|
81
|
+
route: 'api/files/duplicate',
|
|
82
82
|
params: {
|
|
83
83
|
key,
|
|
84
84
|
isPublic,
|
|
85
85
|
},
|
|
86
|
-
data: {
|
|
86
|
+
data: { newKey },
|
|
87
87
|
});
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
changePrivacy(key, newPrivacy, isPublic) {
|
|
91
91
|
return __awaiter(this, void 0, void 0, function* () {
|
|
92
92
|
yield this.callApi({
|
|
93
|
-
method: '
|
|
93
|
+
method: 'patch',
|
|
94
94
|
route: 'api/files',
|
|
95
95
|
params: {
|
|
96
96
|
key,
|
|
97
97
|
isPublic,
|
|
98
98
|
},
|
|
99
|
+
data: { newPrivacy },
|
|
99
100
|
});
|
|
100
101
|
});
|
|
101
102
|
}
|
|
102
|
-
|
|
103
|
+
deleteFile(key, isPublic) {
|
|
103
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
104
105
|
yield this.callApi({
|
|
105
106
|
method: 'delete',
|
|
106
|
-
route: 'api/
|
|
107
|
-
data: { key },
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
getObjectSize(key, isPublic) {
|
|
112
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
yield this.callApi({
|
|
114
|
-
method: 'get',
|
|
115
|
-
route: 'api/folder',
|
|
107
|
+
route: 'api/files',
|
|
116
108
|
params: {
|
|
117
109
|
key,
|
|
118
110
|
isPublic,
|
|
@@ -120,11 +112,12 @@ export class Files extends Base {
|
|
|
120
112
|
});
|
|
121
113
|
});
|
|
122
114
|
}
|
|
123
|
-
|
|
115
|
+
deleteFolder(key) {
|
|
124
116
|
return __awaiter(this, void 0, void 0, function* () {
|
|
125
117
|
yield this.callApi({
|
|
126
|
-
method: '
|
|
127
|
-
route: 'api/
|
|
118
|
+
method: 'delete',
|
|
119
|
+
route: 'api/folder',
|
|
120
|
+
data: { key },
|
|
128
121
|
});
|
|
129
122
|
});
|
|
130
123
|
}
|
|
@@ -140,93 +133,46 @@ export class Files extends Base {
|
|
|
140
133
|
});
|
|
141
134
|
});
|
|
142
135
|
}
|
|
143
|
-
|
|
136
|
+
getObjectInfo(key, isPublic) {
|
|
144
137
|
return __awaiter(this, void 0, void 0, function* () {
|
|
145
138
|
return yield this.callApi({
|
|
146
|
-
method: '
|
|
147
|
-
route: '
|
|
148
|
-
params: Object.assign({ postfix,
|
|
149
|
-
name }, options),
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
getUploadUrl(data, isPublic) {
|
|
154
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
155
|
-
return yield this.callApi({
|
|
156
|
-
method: 'post',
|
|
157
|
-
route: 'api/url',
|
|
139
|
+
method: 'get',
|
|
140
|
+
route: 'api/file',
|
|
158
141
|
params: {
|
|
142
|
+
key,
|
|
159
143
|
isPublic,
|
|
160
144
|
},
|
|
161
|
-
data: Object.assign({}, data),
|
|
162
145
|
});
|
|
163
146
|
});
|
|
164
147
|
}
|
|
165
|
-
|
|
166
|
-
return
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
});
|
|
148
|
+
getUploadUrl(data, isPublic) {
|
|
149
|
+
return this.callApi({
|
|
150
|
+
method: 'post',
|
|
151
|
+
route: 'api/url',
|
|
152
|
+
params: {
|
|
153
|
+
isPublic,
|
|
154
|
+
prefix: '',
|
|
155
|
+
},
|
|
156
|
+
data: Object.assign({}, data),
|
|
175
157
|
});
|
|
176
158
|
}
|
|
177
159
|
uploadFile(file) {
|
|
178
160
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
161
|
const { type, name } = file.fileModel;
|
|
180
162
|
const contentType = type || 'binary/octet-stream';
|
|
181
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
182
163
|
const { url, fields } = yield this.getUploadUrl({
|
|
183
164
|
contentType,
|
|
184
165
|
key: file.prefix + name,
|
|
185
|
-
|
|
186
|
-
cacheControl,
|
|
166
|
+
cacheControl: 'no-cache',
|
|
187
167
|
}, file.isPublic);
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
formData.append(field.key, field.value);
|
|
168
|
+
const formData = new FormData();
|
|
169
|
+
Object.entries(fields).forEach(value => {
|
|
170
|
+
formData.append(value[0], value[1]);
|
|
192
171
|
});
|
|
193
|
-
formData.append('cache-control',
|
|
172
|
+
formData.append('cache-control', 'no-cache');
|
|
194
173
|
formData.append('content-type', contentType);
|
|
195
|
-
formData.append('File', file.fileModel
|
|
196
|
-
return
|
|
197
|
-
method: 'post',
|
|
198
|
-
route: url,
|
|
199
|
-
params: {
|
|
200
|
-
isPublic: file.isPublic,
|
|
201
|
-
},
|
|
202
|
-
data: { formData },
|
|
203
|
-
});
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
uploadSystemFiles(postfix, files) {
|
|
207
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
208
|
-
const patchedFiles = files.map(file => {
|
|
209
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
210
|
-
return Object.assign(Object.assign({}, file), { cacheControl });
|
|
211
|
-
});
|
|
212
|
-
const uploadParams = yield this.getSystemUploadUrl(postfix, patchedFiles);
|
|
213
|
-
const FormDataLib = FormData;
|
|
214
|
-
const formData = new FormDataLib();
|
|
215
|
-
uploadParams.map((param, index) => __awaiter(this, void 0, void 0, function* () {
|
|
216
|
-
const { url, fields } = param;
|
|
217
|
-
const file = patchedFiles[index];
|
|
218
|
-
fields.forEach(value => {
|
|
219
|
-
formData.append(value.key, value);
|
|
220
|
-
});
|
|
221
|
-
formData.append('cache-control', file.cacheControl);
|
|
222
|
-
formData.append('content-type', file.contentType);
|
|
223
|
-
formData.append('File', file.fileDescriptor, file.name);
|
|
224
|
-
return yield this.callApi({
|
|
225
|
-
method: 'post',
|
|
226
|
-
route: url,
|
|
227
|
-
data: { formData },
|
|
228
|
-
});
|
|
229
|
-
}));
|
|
174
|
+
formData.append('File', file.fileModel, name);
|
|
175
|
+
return axios.post(url, formData);
|
|
230
176
|
});
|
|
231
177
|
}
|
|
232
178
|
}
|
package/dist/esm/Files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU1C,MAAM,OAAO,KAAM,SAAQ,IAAI;IAO7B,YAAY,MAAmB;QAC7B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAEnD,KAAK,CAAC;YACJ,KAAK;YACL,YAAY;YACZ,UAAU;YACV,UAAU,EAAE,WAAW;SACxB,CAAC,CAAC;IACL,CAAC;IAOK,aAAa,CAAC,GAAW;;YAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAClC,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,EAAE,GAAG,EAAE;aAChB,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAQK,YAAY,CAAC,QAAiB,EAAE,UAAkB;;YACtD,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,IAAI,UAAU,GAAe,EAAE,CAAC;YAEhC,GAAG;gBACD,MAAM,WAAW,GAAkB;oBACjC,QAAQ;oBACR,MAAM,EAAE,UAAU;iBACnB,CAAC;gBACF,IAAI,SAAS;oBAAE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;gBAEjD,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAyB,MAAM,IAAI,CAAC,OAAO,CAAC;oBAC5E,MAAM,EAAE,KAAK;oBACb,KAAK,EAAE,WAAW;oBAClB,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBACH,UAAU,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;gBAEvC,SAAS,GAAG,iBAAiB,CAAC;aAC/B,QAAQ,SAAS,EAAE;YAEpB,OAAO,UAAU,CAAC;QACpB,CAAC;KAAA;IAMK,YAAY,CAAC,UAAkB;;YACnC,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE;aAChC,CAAC,CAAC;QACL,CAAC;KAAA;IAQK,UAAU,CAAC,GAAW,EAAE,MAAc,EAAE,QAAiB;;YAC7D,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;gBACD,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;KAAA;IAQK,aAAa,CAAC,GAAW,EAAE,MAAc,EAAE,QAAiB;;YAChE,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;gBACD,IAAI,EAAE,EAAE,MAAM,EAAE;aACjB,CAAC,CAAC;QACL,CAAC;KAAA;IAQK,aAAa,CAAC,GAAW,EAAE,UAAgC,EAAE,QAAiB;;YAClF,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;gBACD,IAAI,EAAE,EAAE,UAAU,EAAE;aACrB,CAAC,CAAC;QACL,CAAC;KAAA;IAOK,UAAU,CAAC,GAAW,EAAE,QAAiB;;YAE7C,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAMK,YAAY,CAAC,GAAW;;YAE5B,MAAM,IAAI,CAAC,OAAO,CAAC;gBACjB,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,EAAE,GAAG,EAAE;aACd,CAAC,CAAC;QACL,CAAC;KAAA;IAQK,cAAc,CAAC,GAAW,EAAE,QAAiB;;YACjD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;gBACxB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAOK,aAAa,CAAC,GAAW,EAAE,QAAiB;;YAChD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;gBACxB,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE;oBACN,GAAG;oBACH,QAAQ;iBACT;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAQO,YAAY,CAAC,IAAoB,EAAE,QAAiB;QAC1D,OAAO,IAAI,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE;gBACN,QAAQ;gBACR,MAAM,EAAE,EAAE;aACX;YACD,IAAI,oBAAO,IAAI,CAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAMK,UAAU,CAAC,IAAqB;;YACpC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,IAAI,qBAAqB,CAAC;YAElD,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;gBAC9C,WAAW;gBACX,GAAG,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI;gBACvB,YAAY,EAAE,UAAU;aACzB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAElB,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;YAEhC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAGrC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YAC7C,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAC7C,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnC,CAAC;KAAA;CACF"}
|
package/dist/types/Files.d.ts
CHANGED
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig, FileItem,
|
|
2
|
+
import { FilesConfig, FileItem, UploadFileProps, HeadData } from './types';
|
|
3
3
|
export declare class Files extends Base {
|
|
4
4
|
constructor(params: FilesConfig);
|
|
5
5
|
getFolderSize(key: string): Promise<number>;
|
|
6
|
-
getItemsList(isPublic: boolean,
|
|
6
|
+
getItemsList(isPublic: boolean, treePrefix: string): Promise<FileItem[]>;
|
|
7
7
|
createFolder(folderName: string): Promise<void>;
|
|
8
8
|
renameFile(key: string, newKey: string, isPublic: boolean): Promise<void>;
|
|
9
|
-
|
|
9
|
+
duplicateFile(key: string, newKey: string, isPublic: boolean): Promise<void>;
|
|
10
|
+
changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean): Promise<void>;
|
|
10
11
|
deleteFile(key: string, isPublic: boolean): Promise<void>;
|
|
11
12
|
deleteFolder(key: string): Promise<void>;
|
|
12
|
-
getObjectSize(key: string, isPublic: boolean): Promise<void>;
|
|
13
|
-
serviceMetadata(): Promise<void>;
|
|
14
13
|
getDownloadUrl(key: string, isPublic: boolean): Promise<string>;
|
|
15
|
-
|
|
16
|
-
getUploadUrl
|
|
17
|
-
|
|
18
|
-
fields: {
|
|
19
|
-
key: string;
|
|
20
|
-
value: any;
|
|
21
|
-
}[];
|
|
22
|
-
}>;
|
|
23
|
-
getSystemUploadUrl(postfix: string, files: UploadFile[]): Promise<unknown>;
|
|
24
|
-
uploadFile(file: UploadFileProps): Promise<unknown>;
|
|
25
|
-
uploadSystemFiles(postfix: string, files: UploadFile[]): Promise<void>;
|
|
14
|
+
getObjectInfo(key: string, isPublic: boolean): Promise<HeadData>;
|
|
15
|
+
private getUploadUrl;
|
|
16
|
+
uploadFile(file: UploadFileProps): Promise<void>;
|
|
26
17
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export declare type FilesConfig = {
|
|
|
5
5
|
accountId?: string;
|
|
6
6
|
serviceUrl?: string;
|
|
7
7
|
};
|
|
8
|
-
export declare type
|
|
8
|
+
export declare type GetItemsQuery = {
|
|
9
9
|
isPublic: boolean;
|
|
10
10
|
prefix: string;
|
|
11
11
|
nextToken?: string;
|
|
@@ -24,33 +24,36 @@ export declare type FilesPageState = {
|
|
|
24
24
|
renameTo: string;
|
|
25
25
|
items: FileItem[];
|
|
26
26
|
};
|
|
27
|
-
export declare type
|
|
27
|
+
export declare type HeadData = {
|
|
28
|
+
contentLength: number;
|
|
29
|
+
contentType: string;
|
|
30
|
+
metaData: object;
|
|
31
|
+
};
|
|
32
|
+
export declare type GetItemsListResponse = {
|
|
28
33
|
items: FileItem[];
|
|
29
34
|
nextTokenResponse: string | null;
|
|
30
35
|
};
|
|
31
36
|
export declare type UploadUrlProps = {
|
|
32
37
|
key: string;
|
|
33
38
|
contentType: string;
|
|
34
|
-
maxFileSize
|
|
39
|
+
maxFileSize?: number;
|
|
35
40
|
cacheControl: string;
|
|
36
41
|
};
|
|
37
|
-
export declare type
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
export declare type UploadUrlResponse = {
|
|
43
|
+
url: string;
|
|
44
|
+
fields: {
|
|
45
|
+
key: string;
|
|
46
|
+
bucket: string;
|
|
47
|
+
Policy: string;
|
|
48
|
+
'X-Amz-Date': string;
|
|
49
|
+
'X-Amz-Signature': string;
|
|
50
|
+
'X-Amz-Algorithm': string;
|
|
51
|
+
'X-Amz-Credential': string;
|
|
52
|
+
'X-Amz-Security-Token': string;
|
|
53
|
+
}[];
|
|
43
54
|
};
|
|
44
55
|
export declare type UploadFileProps = {
|
|
45
|
-
fileModel:
|
|
46
|
-
type: string;
|
|
47
|
-
name: string;
|
|
48
|
-
file: any;
|
|
49
|
-
};
|
|
56
|
+
fileModel: File;
|
|
50
57
|
prefix: string;
|
|
51
58
|
isPublic: boolean;
|
|
52
|
-
expires: any;
|
|
53
|
-
progress: any;
|
|
54
|
-
maxFileSize: number;
|
|
55
|
-
ttl: number;
|
|
56
59
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.20.1-createfilespackage.
|
|
2
|
+
"version": "0.20.1-createfilespackage.11",
|
|
3
3
|
"name": "@or-sdk/files",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"access": "public"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@or-sdk/base": "^0.20.1-createfilespackage.
|
|
26
|
+
"@or-sdk/base": "^0.20.1-createfilespackage.11",
|
|
27
|
+
"axios": "^0.24.0"
|
|
27
28
|
},
|
|
28
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "0861599aa948a3a598dd0456009e04acf518a75f"
|
|
29
30
|
}
|
package/src/Files.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
1
2
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig, LsQuery, FileItem, getItemsListResponse, UploadUrlProps, UploadFile, UploadFileProps } from './types';
|
|
3
3
|
import { SERVICE_KEY } from './constants';
|
|
4
|
+
import { FilesConfig, GetItemsQuery, FileItem, GetItemsListResponse, UploadUrlProps, UploadFileProps, UploadUrlResponse, HeadData } from './types';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* OneReach Files service client
|
|
@@ -17,12 +18,11 @@ export class Files extends Base {
|
|
|
17
18
|
* ```
|
|
18
19
|
*/
|
|
19
20
|
constructor(params: FilesConfig) {
|
|
20
|
-
const { token, discoveryUrl,
|
|
21
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
21
22
|
|
|
22
23
|
super({
|
|
23
24
|
token,
|
|
24
25
|
discoveryUrl,
|
|
25
|
-
accountId,
|
|
26
26
|
serviceUrl,
|
|
27
27
|
serviceKey: SERVICE_KEY,
|
|
28
28
|
});
|
|
@@ -31,28 +31,36 @@ export class Files extends Base {
|
|
|
31
31
|
/**
|
|
32
32
|
* Get folder size
|
|
33
33
|
* @param key the name of folder
|
|
34
|
+
* @return total folder size in bytes
|
|
34
35
|
*/
|
|
35
36
|
async getFolderSize(key: string): Promise<number> {
|
|
36
37
|
const { size } = await this.callApi({
|
|
37
|
-
method: '
|
|
38
|
+
method: 'get',
|
|
38
39
|
route: 'api/folder',
|
|
39
40
|
params: { key },
|
|
40
41
|
});
|
|
41
42
|
|
|
42
43
|
return size;
|
|
43
44
|
}
|
|
44
|
-
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Get list of public/private FileItems from api
|
|
48
|
+
* @param isPublic does this file public or private
|
|
49
|
+
* @param treePrefix the folder path where GET FileItems, for Root use ''
|
|
50
|
+
* @return list of FileItems
|
|
51
|
+
*/
|
|
52
|
+
async getItemsList(isPublic: boolean, treePrefix: string): Promise<FileItem[]> {
|
|
45
53
|
let nextToken: null | string = null;
|
|
46
54
|
let totalItems: FileItem[] = [];
|
|
47
55
|
|
|
48
56
|
do {
|
|
49
|
-
const queryParams:
|
|
57
|
+
const queryParams: GetItemsQuery = {
|
|
50
58
|
isPublic,
|
|
51
|
-
prefix,
|
|
59
|
+
prefix: treePrefix,
|
|
52
60
|
};
|
|
53
61
|
if (nextToken) queryParams.nextToken = nextToken;
|
|
54
62
|
|
|
55
|
-
const { items, nextTokenResponse }:
|
|
63
|
+
const { items, nextTokenResponse }: GetItemsListResponse = await this.callApi({
|
|
56
64
|
method: 'GET',
|
|
57
65
|
route: 'api/files',
|
|
58
66
|
params: queryParams,
|
|
@@ -65,7 +73,11 @@ export class Files extends Base {
|
|
|
65
73
|
return totalItems;
|
|
66
74
|
}
|
|
67
75
|
|
|
68
|
-
|
|
76
|
+
/**
|
|
77
|
+
* Create new folders
|
|
78
|
+
* @param folderName should have folder path + folder name, example: /main/New folder
|
|
79
|
+
*/
|
|
80
|
+
async createFolder(folderName: string): Promise<void> {
|
|
69
81
|
await this.callApi({
|
|
70
82
|
method: 'post',
|
|
71
83
|
route: 'api/files',
|
|
@@ -73,7 +85,13 @@ export class Files extends Base {
|
|
|
73
85
|
});
|
|
74
86
|
}
|
|
75
87
|
|
|
76
|
-
|
|
88
|
+
/**
|
|
89
|
+
* Rename exist file
|
|
90
|
+
* @param key old file name
|
|
91
|
+
* @param newKey new file name
|
|
92
|
+
* @param isPublic does this file public or private
|
|
93
|
+
*/
|
|
94
|
+
async renameFile(key: string, newKey: string, isPublic: boolean): Promise<void> {
|
|
77
95
|
await this.callApi({
|
|
78
96
|
method: 'put',
|
|
79
97
|
route: 'api/files',
|
|
@@ -85,41 +103,52 @@ export class Files extends Base {
|
|
|
85
103
|
});
|
|
86
104
|
}
|
|
87
105
|
|
|
88
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Duplicate file
|
|
108
|
+
* @param key target file name
|
|
109
|
+
* @param newKey new file name
|
|
110
|
+
* @param isPublic does this file public or private
|
|
111
|
+
*/
|
|
112
|
+
async duplicateFile(key: string, newKey: string, isPublic: boolean): Promise<void> {
|
|
89
113
|
await this.callApi({
|
|
90
|
-
method: '
|
|
91
|
-
route: 'api/files',
|
|
114
|
+
method: 'put',
|
|
115
|
+
route: 'api/files/duplicate',
|
|
92
116
|
params: {
|
|
93
117
|
key,
|
|
94
118
|
isPublic,
|
|
95
119
|
},
|
|
96
|
-
data: {
|
|
120
|
+
data: { newKey },
|
|
97
121
|
});
|
|
98
122
|
}
|
|
99
123
|
|
|
100
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Change file privacy
|
|
126
|
+
* @param key file name
|
|
127
|
+
* @param newPrivacy new file privacy
|
|
128
|
+
* @param isPublic does this file public or private
|
|
129
|
+
*/
|
|
130
|
+
async changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean): Promise<void> {
|
|
101
131
|
await this.callApi({
|
|
102
|
-
method: '
|
|
132
|
+
method: 'patch',
|
|
103
133
|
route: 'api/files',
|
|
104
134
|
params: {
|
|
105
135
|
key,
|
|
106
136
|
isPublic,
|
|
107
137
|
},
|
|
138
|
+
data: { newPrivacy },
|
|
108
139
|
});
|
|
109
140
|
}
|
|
110
141
|
|
|
111
|
-
|
|
142
|
+
/**
|
|
143
|
+
* Delete file
|
|
144
|
+
* @param key file name
|
|
145
|
+
* @param isPublic does this file public or private
|
|
146
|
+
*/
|
|
147
|
+
async deleteFile(key: string, isPublic: boolean): Promise<void> {
|
|
148
|
+
// TODO: add error handler and status response true
|
|
112
149
|
await this.callApi({
|
|
113
150
|
method: 'delete',
|
|
114
|
-
route: 'api/
|
|
115
|
-
data: { key },
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
async getObjectSize(key: string, isPublic: boolean) {
|
|
120
|
-
await this.callApi({
|
|
121
|
-
method: 'get',
|
|
122
|
-
route: 'api/folder',
|
|
151
|
+
route: 'api/files',
|
|
123
152
|
params: {
|
|
124
153
|
key,
|
|
125
154
|
isPublic,
|
|
@@ -127,16 +156,26 @@ export class Files extends Base {
|
|
|
127
156
|
});
|
|
128
157
|
}
|
|
129
158
|
|
|
130
|
-
|
|
131
|
-
|
|
159
|
+
/**
|
|
160
|
+
* Delete folder
|
|
161
|
+
* @param key folder name
|
|
162
|
+
*/
|
|
163
|
+
async deleteFolder(key: string): Promise<void> {
|
|
164
|
+
// TODO: add error handler and status response true
|
|
132
165
|
await this.callApi({
|
|
133
|
-
method: '
|
|
134
|
-
route: 'api/
|
|
166
|
+
method: 'delete',
|
|
167
|
+
route: 'api/folder',
|
|
168
|
+
data: { key },
|
|
135
169
|
});
|
|
136
170
|
}
|
|
137
171
|
|
|
172
|
+
/**
|
|
173
|
+
* Get a link to download file, example: for preview
|
|
174
|
+
* @param key folder name
|
|
175
|
+
* @param isPublic does this file public or private
|
|
176
|
+
* @return file url
|
|
177
|
+
*/
|
|
138
178
|
async getDownloadUrl(key: string, isPublic: boolean): Promise<string> {
|
|
139
|
-
// TODO: test it
|
|
140
179
|
return await this.callApi({
|
|
141
180
|
method: 'get',
|
|
142
181
|
route: 'api/url',
|
|
@@ -147,116 +186,66 @@ export class Files extends Base {
|
|
|
147
186
|
});
|
|
148
187
|
}
|
|
149
188
|
|
|
150
|
-
|
|
151
|
-
|
|
189
|
+
/**
|
|
190
|
+
* Get object info
|
|
191
|
+
* @param key folder name
|
|
192
|
+
* @param isPublic does this file public or private
|
|
193
|
+
*/
|
|
194
|
+
async getObjectInfo(key: string, isPublic: boolean): Promise<HeadData> {
|
|
152
195
|
return await this.callApi({
|
|
153
|
-
method: '
|
|
154
|
-
route: '
|
|
196
|
+
method: 'get',
|
|
197
|
+
route: 'api/file',
|
|
155
198
|
params: {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
...options,
|
|
199
|
+
key,
|
|
200
|
+
isPublic,
|
|
159
201
|
},
|
|
160
202
|
});
|
|
161
203
|
}
|
|
162
204
|
|
|
163
|
-
|
|
164
|
-
|
|
205
|
+
/**
|
|
206
|
+
* Get a link for uploading specific file, JUST FOR INNER USE
|
|
207
|
+
* @param data has UploadUrlProps values inside
|
|
208
|
+
* @param isPublic does this file public or private
|
|
209
|
+
* @return uploading Url with different header Fields
|
|
210
|
+
*/
|
|
211
|
+
private getUploadUrl(data: UploadUrlProps, isPublic: boolean): Promise<UploadUrlResponse> {
|
|
212
|
+
return this.callApi({
|
|
165
213
|
method: 'post',
|
|
166
214
|
route: 'api/url',
|
|
167
215
|
params: {
|
|
168
216
|
isPublic,
|
|
217
|
+
prefix: '',
|
|
169
218
|
},
|
|
170
219
|
data: { ...data },
|
|
171
220
|
});
|
|
172
221
|
}
|
|
173
222
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
postfix,
|
|
180
|
-
files,
|
|
181
|
-
// old version
|
|
182
|
-
// files: _.map(files, file => _.omit(file, ['fileDescriptor'])),
|
|
183
|
-
// ...(!_.isEmpty(options) && options),
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
async uploadFile(file: UploadFileProps) {
|
|
223
|
+
/**
|
|
224
|
+
* Upload file to S3 bucket
|
|
225
|
+
* @param file file itself for uploading with prefix (path) and isPublic boolean
|
|
226
|
+
*/
|
|
227
|
+
async uploadFile(file: UploadFileProps): Promise<void> {
|
|
189
228
|
const { type, name } = file.fileModel;
|
|
190
229
|
const contentType = type || 'binary/octet-stream';
|
|
191
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
192
230
|
|
|
193
231
|
const { url, fields } = await this.getUploadUrl({
|
|
194
232
|
contentType,
|
|
195
233
|
key: file.prefix + name,
|
|
196
|
-
|
|
197
|
-
cacheControl,
|
|
234
|
+
cacheControl: 'no-cache',
|
|
198
235
|
}, file.isPublic);
|
|
199
236
|
|
|
200
|
-
const
|
|
201
|
-
const formData = new FormDataLib();
|
|
202
|
-
|
|
203
|
-
fields.forEach(field => {
|
|
204
|
-
formData.append(field.key, field.value);
|
|
205
|
-
});
|
|
206
|
-
|
|
207
|
-
formData.append('cache-control', cacheControl);
|
|
208
|
-
formData.append('content-type', contentType);
|
|
209
|
-
formData.append('File', file.fileModel.file, name);
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
return await this.callApi({
|
|
213
|
-
method: 'post',
|
|
214
|
-
route: url,
|
|
215
|
-
params: {
|
|
216
|
-
isPublic: file.isPublic,
|
|
217
|
-
},
|
|
218
|
-
data: { formData },
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
async uploadSystemFiles(postfix: string, files: UploadFile[]) {
|
|
223
|
-
const patchedFiles = files.map(file => {
|
|
224
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
225
|
-
return {
|
|
226
|
-
...file,
|
|
227
|
-
cacheControl,
|
|
228
|
-
};
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
const uploadParams = await this.getSystemUploadUrl(postfix, patchedFiles);
|
|
232
|
-
|
|
233
|
-
const FormDataLib = FormData;
|
|
234
|
-
const formData = new FormDataLib();
|
|
235
|
-
|
|
236
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
237
|
-
// @ts-ignore
|
|
238
|
-
uploadParams.map(async (param, index) => {
|
|
239
|
-
const { url, fields } = param;
|
|
240
|
-
const file = patchedFiles[index];
|
|
237
|
+
const formData = new FormData();
|
|
241
238
|
|
|
239
|
+
Object.entries(fields).forEach(value => {
|
|
242
240
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
243
241
|
// @ts-ignore
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
formData.append('cache-control', file.cacheControl);
|
|
249
|
-
formData.append('content-type', file.contentType);
|
|
242
|
+
formData.append(value[0], value[1]);
|
|
243
|
+
});
|
|
250
244
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
245
|
+
formData.append('cache-control', 'no-cache');
|
|
246
|
+
formData.append('content-type', contentType);
|
|
247
|
+
formData.append('File', file.fileModel, name);
|
|
254
248
|
|
|
255
|
-
|
|
256
|
-
method: 'post',
|
|
257
|
-
route: url,
|
|
258
|
-
data: { formData },
|
|
259
|
-
});
|
|
260
|
-
});
|
|
249
|
+
return axios.post(url, formData);
|
|
261
250
|
}
|
|
262
251
|
}
|
package/src/types.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type FilesConfig = {
|
|
|
19
19
|
serviceUrl?: string;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export type
|
|
22
|
+
export type GetItemsQuery = {
|
|
23
23
|
isPublic: boolean;
|
|
24
24
|
prefix: string;
|
|
25
25
|
nextToken?: string;
|
|
@@ -40,7 +40,14 @@ export type FilesPageState = {
|
|
|
40
40
|
renameTo: string;
|
|
41
41
|
items: FileItem[];
|
|
42
42
|
};
|
|
43
|
-
|
|
43
|
+
|
|
44
|
+
export type HeadData = {
|
|
45
|
+
contentLength: number;
|
|
46
|
+
contentType: string;
|
|
47
|
+
metaData: object;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type GetItemsListResponse = {
|
|
44
51
|
items: FileItem[];
|
|
45
52
|
nextTokenResponse: string | null;
|
|
46
53
|
};
|
|
@@ -48,25 +55,27 @@ export type getItemsListResponse = {
|
|
|
48
55
|
export type UploadUrlProps = {
|
|
49
56
|
key: string;
|
|
50
57
|
contentType: string;
|
|
51
|
-
maxFileSize
|
|
58
|
+
maxFileSize?: number;
|
|
52
59
|
cacheControl: string;
|
|
53
60
|
};
|
|
54
61
|
|
|
55
|
-
export type
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
export type UploadUrlResponse = {
|
|
63
|
+
url: string;
|
|
64
|
+
fields: {
|
|
65
|
+
key: string;
|
|
66
|
+
bucket: string;
|
|
67
|
+
Policy: string;
|
|
68
|
+
'X-Amz-Date': string;
|
|
69
|
+
'X-Amz-Signature': string;
|
|
70
|
+
'X-Amz-Algorithm': string;
|
|
71
|
+
'X-Amz-Credential': string;
|
|
72
|
+
'X-Amz-Security-Token': string;
|
|
73
|
+
}[];
|
|
61
74
|
};
|
|
62
75
|
|
|
63
76
|
export type UploadFileProps = {
|
|
64
|
-
fileModel:
|
|
77
|
+
fileModel: File;
|
|
65
78
|
prefix: string;
|
|
66
79
|
isPublic: boolean;
|
|
67
|
-
expires: any;
|
|
68
|
-
progress: any;
|
|
69
|
-
maxFileSize: number;
|
|
70
|
-
ttl: number;
|
|
71
80
|
};
|
|
72
81
|
|