@or-sdk/files 0.20.1-createfilespackage.1 → 0.20.1-createfilespackage.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/cjs/Files.js +22 -142
- package/dist/cjs/Files.js.map +1 -1
- package/dist/esm/Files.js +21 -96
- package/dist/esm/Files.js.map +1 -1
- package/dist/types/Files.d.ts +4 -15
- package/dist/types/types.d.ts +17 -19
- package/package.json +3 -3
- package/src/Files.ts +73 -113
- package/src/types.ts +17 -15
package/dist/cjs/Files.js
CHANGED
|
@@ -77,11 +77,10 @@ var constants_1 = require("./constants");
|
|
|
77
77
|
var Files = (function (_super) {
|
|
78
78
|
__extends(Files, _super);
|
|
79
79
|
function Files(params) {
|
|
80
|
-
var token = params.token, discoveryUrl = params.discoveryUrl,
|
|
80
|
+
var token = params.token, discoveryUrl = params.discoveryUrl, serviceUrl = params.serviceUrl;
|
|
81
81
|
return _super.call(this, {
|
|
82
82
|
token: token,
|
|
83
83
|
discoveryUrl: discoveryUrl,
|
|
84
|
-
accountId: accountId,
|
|
85
84
|
serviceUrl: serviceUrl,
|
|
86
85
|
serviceKey: constants_1.SERVICE_KEY,
|
|
87
86
|
}) || this;
|
|
@@ -92,7 +91,7 @@ var Files = (function (_super) {
|
|
|
92
91
|
return __generator(this, function (_a) {
|
|
93
92
|
switch (_a.label) {
|
|
94
93
|
case 0: return [4, this.callApi({
|
|
95
|
-
method: '
|
|
94
|
+
method: 'get',
|
|
96
95
|
route: 'api/folder',
|
|
97
96
|
params: { key: key },
|
|
98
97
|
})];
|
|
@@ -103,7 +102,7 @@ var Files = (function (_super) {
|
|
|
103
102
|
});
|
|
104
103
|
});
|
|
105
104
|
};
|
|
106
|
-
Files.prototype.getItemsList = function (isPublic,
|
|
105
|
+
Files.prototype.getItemsList = function (isPublic, treePrefix) {
|
|
107
106
|
return __awaiter(this, void 0, void 0, function () {
|
|
108
107
|
var nextToken, totalItems, queryParams, _a, items, nextTokenResponse;
|
|
109
108
|
return __generator(this, function (_b) {
|
|
@@ -115,7 +114,7 @@ var Files = (function (_super) {
|
|
|
115
114
|
case 1:
|
|
116
115
|
queryParams = {
|
|
117
116
|
isPublic: isPublic,
|
|
118
|
-
|
|
117
|
+
treePrefix: treePrefix,
|
|
119
118
|
};
|
|
120
119
|
if (nextToken)
|
|
121
120
|
queryParams.nextToken = nextToken;
|
|
@@ -228,40 +227,6 @@ var Files = (function (_super) {
|
|
|
228
227
|
});
|
|
229
228
|
});
|
|
230
229
|
};
|
|
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',
|
|
238
|
-
params: {
|
|
239
|
-
key: key,
|
|
240
|
-
isPublic: isPublic,
|
|
241
|
-
},
|
|
242
|
-
})];
|
|
243
|
-
case 1:
|
|
244
|
-
_a.sent();
|
|
245
|
-
return [2];
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
});
|
|
249
|
-
};
|
|
250
|
-
Files.prototype.serviceMetadata = function () {
|
|
251
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
252
|
-
return __generator(this, function (_a) {
|
|
253
|
-
switch (_a.label) {
|
|
254
|
-
case 0: return [4, this.callApi({
|
|
255
|
-
method: 'get',
|
|
256
|
-
route: 'api/meta',
|
|
257
|
-
})];
|
|
258
|
-
case 1:
|
|
259
|
-
_a.sent();
|
|
260
|
-
return [2];
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
});
|
|
264
|
-
};
|
|
265
230
|
Files.prototype.getDownloadUrl = function (key, isPublic) {
|
|
266
231
|
return __awaiter(this, void 0, void 0, function () {
|
|
267
232
|
return __generator(this, function (_a) {
|
|
@@ -279,135 +244,50 @@ var Files = (function (_super) {
|
|
|
279
244
|
});
|
|
280
245
|
});
|
|
281
246
|
};
|
|
282
|
-
Files.prototype.getSystemDownloadUrl = function (postfix, name, options) {
|
|
283
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
284
|
-
return __generator(this, function (_a) {
|
|
285
|
-
switch (_a.label) {
|
|
286
|
-
case 0: return [4, this.callApi({
|
|
287
|
-
method: 'post',
|
|
288
|
-
route: 'downloadurl',
|
|
289
|
-
params: __assign({ postfix: postfix, name: name }, options),
|
|
290
|
-
})];
|
|
291
|
-
case 1: return [2, _a.sent()];
|
|
292
|
-
}
|
|
293
|
-
});
|
|
294
|
-
});
|
|
295
|
-
};
|
|
296
247
|
Files.prototype.getUploadUrl = function (data, isPublic) {
|
|
297
|
-
return
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
},
|
|
306
|
-
data: __assign({}, data),
|
|
307
|
-
})];
|
|
308
|
-
case 1: return [2, _a.sent()];
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
});
|
|
312
|
-
};
|
|
313
|
-
Files.prototype.getSystemUploadUrl = function (postfix, files) {
|
|
314
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
315
|
-
return __generator(this, function (_a) {
|
|
316
|
-
switch (_a.label) {
|
|
317
|
-
case 0: return [4, this.callApi({
|
|
318
|
-
method: 'post',
|
|
319
|
-
route: 'uploadfile',
|
|
320
|
-
data: {
|
|
321
|
-
postfix: postfix,
|
|
322
|
-
files: files,
|
|
323
|
-
},
|
|
324
|
-
})];
|
|
325
|
-
case 1: return [2, _a.sent()];
|
|
326
|
-
}
|
|
327
|
-
});
|
|
248
|
+
return this.callApi({
|
|
249
|
+
method: 'post',
|
|
250
|
+
route: 'api/url',
|
|
251
|
+
params: {
|
|
252
|
+
isPublic: isPublic,
|
|
253
|
+
prefix: '',
|
|
254
|
+
},
|
|
255
|
+
data: __assign({}, data),
|
|
328
256
|
});
|
|
329
257
|
};
|
|
330
258
|
Files.prototype.uploadFile = function (file) {
|
|
331
259
|
return __awaiter(this, void 0, void 0, function () {
|
|
332
|
-
var _a, type, name, contentType,
|
|
260
|
+
var _a, type, name, contentType, _b, url, fields, formData, route;
|
|
333
261
|
return __generator(this, function (_c) {
|
|
334
262
|
switch (_c.label) {
|
|
335
263
|
case 0:
|
|
336
264
|
_a = file.fileModel, type = _a.type, name = _a.name;
|
|
337
265
|
contentType = type || 'binary/octet-stream';
|
|
338
|
-
cacheControl = file.ttl ? "max-age=".concat(file.ttl) : 'no-cache';
|
|
339
266
|
return [4, this.getUploadUrl({
|
|
340
267
|
contentType: contentType,
|
|
341
268
|
key: file.prefix + name,
|
|
342
|
-
|
|
343
|
-
cacheControl: cacheControl,
|
|
269
|
+
cacheControl: 'no-cache',
|
|
344
270
|
}, file.isPublic)];
|
|
345
271
|
case 1:
|
|
346
272
|
_b = _c.sent(), url = _b.url, fields = _b.fields;
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
formData.append(field.key, field.value);
|
|
273
|
+
formData = new FormData();
|
|
274
|
+
Object.entries(fields).forEach(function (value) {
|
|
275
|
+
formData.append(value[0], value[1]);
|
|
351
276
|
});
|
|
352
|
-
formData.append('cache-control',
|
|
277
|
+
formData.append('cache-control', 'no-cache');
|
|
353
278
|
formData.append('content-type', contentType);
|
|
354
|
-
formData.append('File', file.fileModel
|
|
279
|
+
formData.append('File', file.fileModel, name);
|
|
280
|
+
route = url.split('api.onereach.ai/')[1];
|
|
355
281
|
return [4, this.callApi({
|
|
356
282
|
method: 'post',
|
|
357
|
-
route:
|
|
358
|
-
|
|
359
|
-
isPublic: file.isPublic,
|
|
360
|
-
},
|
|
361
|
-
data: { formData: formData },
|
|
283
|
+
route: route,
|
|
284
|
+
data: formData,
|
|
362
285
|
})];
|
|
363
286
|
case 2: return [2, _c.sent()];
|
|
364
287
|
}
|
|
365
288
|
});
|
|
366
289
|
});
|
|
367
290
|
};
|
|
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];
|
|
407
|
-
}
|
|
408
|
-
});
|
|
409
|
-
});
|
|
410
|
-
};
|
|
411
291
|
return Files;
|
|
412
292
|
}(base_1.Base));
|
|
413
293
|
exports.Files = Files;
|
package/dist/cjs/Files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAoC;AAEpC,yCAA0C;AAS1C;IAA2B,yBAAI;IAO7B,eAAY,MAAmB;QACrB,IAAA,KAAK,
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/Files.js
CHANGED
|
@@ -11,11 +11,10 @@ import { Base } from '@or-sdk/base';
|
|
|
11
11
|
import { SERVICE_KEY } from './constants';
|
|
12
12
|
export class Files extends Base {
|
|
13
13
|
constructor(params) {
|
|
14
|
-
const { token, discoveryUrl,
|
|
14
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
15
15
|
super({
|
|
16
16
|
token,
|
|
17
17
|
discoveryUrl,
|
|
18
|
-
accountId,
|
|
19
18
|
serviceUrl,
|
|
20
19
|
serviceKey: SERVICE_KEY,
|
|
21
20
|
});
|
|
@@ -23,21 +22,21 @@ export class Files extends Base {
|
|
|
23
22
|
getFolderSize(key) {
|
|
24
23
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
24
|
const { size } = yield this.callApi({
|
|
26
|
-
method: '
|
|
25
|
+
method: 'get',
|
|
27
26
|
route: 'api/folder',
|
|
28
27
|
params: { key },
|
|
29
28
|
});
|
|
30
29
|
return size;
|
|
31
30
|
});
|
|
32
31
|
}
|
|
33
|
-
getItemsList(isPublic,
|
|
32
|
+
getItemsList(isPublic, treePrefix) {
|
|
34
33
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
34
|
let nextToken = null;
|
|
36
35
|
let totalItems = [];
|
|
37
36
|
do {
|
|
38
37
|
const queryParams = {
|
|
39
38
|
isPublic,
|
|
40
|
-
|
|
39
|
+
treePrefix,
|
|
41
40
|
};
|
|
42
41
|
if (nextToken)
|
|
43
42
|
queryParams.nextToken = nextToken;
|
|
@@ -108,26 +107,6 @@ export class Files extends Base {
|
|
|
108
107
|
});
|
|
109
108
|
});
|
|
110
109
|
}
|
|
111
|
-
getObjectSize(key, isPublic) {
|
|
112
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
yield this.callApi({
|
|
114
|
-
method: 'get',
|
|
115
|
-
route: 'api/folder',
|
|
116
|
-
params: {
|
|
117
|
-
key,
|
|
118
|
-
isPublic,
|
|
119
|
-
},
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
serviceMetadata() {
|
|
124
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
125
|
-
yield this.callApi({
|
|
126
|
-
method: 'get',
|
|
127
|
-
route: 'api/meta',
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
110
|
getDownloadUrl(key, isPublic) {
|
|
132
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
133
112
|
return yield this.callApi({
|
|
@@ -140,94 +119,40 @@ export class Files extends Base {
|
|
|
140
119
|
});
|
|
141
120
|
});
|
|
142
121
|
}
|
|
143
|
-
getSystemDownloadUrl(postfix, name, options) {
|
|
144
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
return yield this.callApi({
|
|
146
|
-
method: 'post',
|
|
147
|
-
route: 'downloadurl',
|
|
148
|
-
params: Object.assign({ postfix,
|
|
149
|
-
name }, options),
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
122
|
getUploadUrl(data, isPublic) {
|
|
154
|
-
return
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
getSystemUploadUrl(postfix, files) {
|
|
166
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
167
|
-
return yield this.callApi({
|
|
168
|
-
method: 'post',
|
|
169
|
-
route: 'uploadfile',
|
|
170
|
-
data: {
|
|
171
|
-
postfix,
|
|
172
|
-
files,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
123
|
+
return this.callApi({
|
|
124
|
+
method: 'post',
|
|
125
|
+
route: 'api/url',
|
|
126
|
+
params: {
|
|
127
|
+
isPublic,
|
|
128
|
+
prefix: '',
|
|
129
|
+
},
|
|
130
|
+
data: Object.assign({}, data),
|
|
175
131
|
});
|
|
176
132
|
}
|
|
177
133
|
uploadFile(file) {
|
|
178
134
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
135
|
const { type, name } = file.fileModel;
|
|
180
136
|
const contentType = type || 'binary/octet-stream';
|
|
181
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
182
137
|
const { url, fields } = yield this.getUploadUrl({
|
|
183
138
|
contentType,
|
|
184
139
|
key: file.prefix + name,
|
|
185
|
-
|
|
186
|
-
cacheControl,
|
|
140
|
+
cacheControl: 'no-cache',
|
|
187
141
|
}, file.isPublic);
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
formData.append(field.key, field.value);
|
|
142
|
+
const formData = new FormData();
|
|
143
|
+
Object.entries(fields).forEach(value => {
|
|
144
|
+
formData.append(value[0], value[1]);
|
|
192
145
|
});
|
|
193
|
-
formData.append('cache-control',
|
|
146
|
+
formData.append('cache-control', 'no-cache');
|
|
194
147
|
formData.append('content-type', contentType);
|
|
195
|
-
formData.append('File', file.fileModel
|
|
148
|
+
formData.append('File', file.fileModel, name);
|
|
149
|
+
const route = url.split('api.onereach.ai/')[1];
|
|
196
150
|
return yield this.callApi({
|
|
197
151
|
method: 'post',
|
|
198
|
-
route:
|
|
199
|
-
|
|
200
|
-
isPublic: file.isPublic,
|
|
201
|
-
},
|
|
202
|
-
data: { formData },
|
|
152
|
+
route: route,
|
|
153
|
+
data: formData,
|
|
203
154
|
});
|
|
204
155
|
});
|
|
205
156
|
}
|
|
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
|
-
}));
|
|
230
|
-
});
|
|
231
|
-
}
|
|
232
157
|
}
|
|
233
158
|
//# sourceMappingURL=Files.js.map
|
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;AAEpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS1C,MAAM,OAAO,KAAM,SAAQ,IAAI;IAO7B,YAAY,MAAmB;QAC7B,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"Files.js","sourceRoot":"","sources":["../../src/Files.ts"],"names":[],"mappings":"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"}
|
package/dist/types/Files.d.ts
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig, FileItem,
|
|
2
|
+
import { FilesConfig, FileItem, UploadFileProps } 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
|
-
changePrivacy(key: string, newPrivacy:
|
|
9
|
+
changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean): Promise<void>;
|
|
10
10
|
deleteFile(key: string, isPublic: boolean): Promise<void>;
|
|
11
11
|
deleteFolder(key: string): Promise<void>;
|
|
12
|
-
getObjectSize(key: string, isPublic: boolean): Promise<void>;
|
|
13
|
-
serviceMetadata(): Promise<void>;
|
|
14
12
|
getDownloadUrl(key: string, isPublic: boolean): Promise<string>;
|
|
15
|
-
|
|
16
|
-
getUploadUrl(data: UploadUrlProps, isPublic: boolean): Promise<{
|
|
17
|
-
url: string;
|
|
18
|
-
fields: {
|
|
19
|
-
key: string;
|
|
20
|
-
value: any;
|
|
21
|
-
}[];
|
|
22
|
-
}>;
|
|
23
|
-
getSystemUploadUrl(postfix: string, files: UploadFile[]): Promise<unknown>;
|
|
13
|
+
private getUploadUrl;
|
|
24
14
|
uploadFile(file: UploadFileProps): Promise<unknown>;
|
|
25
|
-
uploadSystemFiles(postfix: string, files: UploadFile[]): Promise<void>;
|
|
26
15
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ 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
|
+
treePrefix: string;
|
|
11
11
|
nextToken?: string;
|
|
12
12
|
};
|
|
13
13
|
export declare type FileItem = {
|
|
@@ -24,33 +24,31 @@ export declare type FilesPageState = {
|
|
|
24
24
|
renameTo: string;
|
|
25
25
|
items: FileItem[];
|
|
26
26
|
};
|
|
27
|
-
export declare type
|
|
27
|
+
export declare type GetItemsListResponse = {
|
|
28
28
|
items: FileItem[];
|
|
29
29
|
nextTokenResponse: string | null;
|
|
30
30
|
};
|
|
31
31
|
export declare type UploadUrlProps = {
|
|
32
32
|
key: string;
|
|
33
33
|
contentType: string;
|
|
34
|
-
maxFileSize
|
|
34
|
+
maxFileSize?: number;
|
|
35
35
|
cacheControl: string;
|
|
36
36
|
};
|
|
37
|
-
export declare type
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
export declare type UploadUrlResponse = {
|
|
38
|
+
url: string;
|
|
39
|
+
fields: {
|
|
40
|
+
key: string;
|
|
41
|
+
bucket: string;
|
|
42
|
+
Policy: string;
|
|
43
|
+
'X-Amz-Date': string;
|
|
44
|
+
'X-Amz-Signature': string;
|
|
45
|
+
'X-Amz-Algorithm': string;
|
|
46
|
+
'X-Amz-Credential': string;
|
|
47
|
+
'X-Amz-Security-Token': string;
|
|
48
|
+
}[];
|
|
43
49
|
};
|
|
44
50
|
export declare type UploadFileProps = {
|
|
45
|
-
fileModel:
|
|
46
|
-
type: string;
|
|
47
|
-
name: string;
|
|
48
|
-
file: any;
|
|
49
|
-
};
|
|
51
|
+
fileModel: File;
|
|
50
52
|
prefix: string;
|
|
51
53
|
isPublic: boolean;
|
|
52
|
-
expires: any;
|
|
53
|
-
progress: any;
|
|
54
|
-
maxFileSize: number;
|
|
55
|
-
ttl: number;
|
|
56
54
|
};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.20.1-createfilespackage.
|
|
2
|
+
"version": "0.20.1-createfilespackage.4",
|
|
3
3
|
"name": "@or-sdk/files",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
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.4"
|
|
27
27
|
},
|
|
28
|
-
"gitHead": "
|
|
28
|
+
"gitHead": "a81651ec47d39249346403e09ff6a3f1b6631241"
|
|
29
29
|
}
|
package/src/Files.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Base } from '@or-sdk/base';
|
|
2
|
-
import { FilesConfig,
|
|
2
|
+
import { FilesConfig, GetItemsQuery, FileItem, GetItemsListResponse, UploadUrlProps, UploadFileProps, UploadUrlResponse } from './types';
|
|
3
3
|
import { SERVICE_KEY } from './constants';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -17,12 +17,11 @@ export class Files extends Base {
|
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
constructor(params: FilesConfig) {
|
|
20
|
-
const { token, discoveryUrl,
|
|
20
|
+
const { token, discoveryUrl, serviceUrl } = params;
|
|
21
21
|
|
|
22
22
|
super({
|
|
23
23
|
token,
|
|
24
24
|
discoveryUrl,
|
|
25
|
-
accountId,
|
|
26
25
|
serviceUrl,
|
|
27
26
|
serviceKey: SERVICE_KEY,
|
|
28
27
|
});
|
|
@@ -31,28 +30,36 @@ export class Files extends Base {
|
|
|
31
30
|
/**
|
|
32
31
|
* Get folder size
|
|
33
32
|
* @param key the name of folder
|
|
33
|
+
* @return total folder size in bytes
|
|
34
34
|
*/
|
|
35
35
|
async getFolderSize(key: string): Promise<number> {
|
|
36
36
|
const { size } = await this.callApi({
|
|
37
|
-
method: '
|
|
37
|
+
method: 'get',
|
|
38
38
|
route: 'api/folder',
|
|
39
39
|
params: { key },
|
|
40
40
|
});
|
|
41
41
|
|
|
42
42
|
return size;
|
|
43
43
|
}
|
|
44
|
-
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Get list of public/private FileItems from api
|
|
47
|
+
* @param isPublic does this file public or private
|
|
48
|
+
* @param treePrefix the folder path where GET FileItems, for Root use ''
|
|
49
|
+
* @return list of FileItems
|
|
50
|
+
*/
|
|
51
|
+
async getItemsList(isPublic: boolean, treePrefix: string): Promise<FileItem[]> {
|
|
45
52
|
let nextToken: null | string = null;
|
|
46
53
|
let totalItems: FileItem[] = [];
|
|
47
54
|
|
|
48
55
|
do {
|
|
49
|
-
const queryParams:
|
|
56
|
+
const queryParams: GetItemsQuery = {
|
|
50
57
|
isPublic,
|
|
51
|
-
|
|
58
|
+
treePrefix,
|
|
52
59
|
};
|
|
53
60
|
if (nextToken) queryParams.nextToken = nextToken;
|
|
54
61
|
|
|
55
|
-
const { items, nextTokenResponse }:
|
|
62
|
+
const { items, nextTokenResponse }: GetItemsListResponse = await this.callApi({
|
|
56
63
|
method: 'GET',
|
|
57
64
|
route: 'api/files',
|
|
58
65
|
params: queryParams,
|
|
@@ -65,6 +72,10 @@ export class Files extends Base {
|
|
|
65
72
|
return totalItems;
|
|
66
73
|
}
|
|
67
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Create new folders
|
|
77
|
+
* @param folderName should have folder path + folder name, example: /main/New folder
|
|
78
|
+
*/
|
|
68
79
|
async createFolder(folderName: string) {
|
|
69
80
|
await this.callApi({
|
|
70
81
|
method: 'post',
|
|
@@ -73,6 +84,12 @@ export class Files extends Base {
|
|
|
73
84
|
});
|
|
74
85
|
}
|
|
75
86
|
|
|
87
|
+
/**
|
|
88
|
+
* Rename exist file
|
|
89
|
+
* @param key old file name
|
|
90
|
+
* @param newKey new file name
|
|
91
|
+
* @param isPublic does this file public or private
|
|
92
|
+
*/
|
|
76
93
|
async renameFile(key: string, newKey: string, isPublic: boolean) {
|
|
77
94
|
await this.callApi({
|
|
78
95
|
method: 'put',
|
|
@@ -85,7 +102,13 @@ export class Files extends Base {
|
|
|
85
102
|
});
|
|
86
103
|
}
|
|
87
104
|
|
|
88
|
-
|
|
105
|
+
/**
|
|
106
|
+
* Change file privacy
|
|
107
|
+
* @param key file name
|
|
108
|
+
* @param newPrivacy new file privacy
|
|
109
|
+
* @param isPublic does this file public or private
|
|
110
|
+
*/
|
|
111
|
+
async changePrivacy(key: string, newPrivacy: 'private' | 'public', isPublic: boolean) {
|
|
89
112
|
await this.callApi({
|
|
90
113
|
method: 'patch',
|
|
91
114
|
route: 'api/files',
|
|
@@ -97,7 +120,13 @@ export class Files extends Base {
|
|
|
97
120
|
});
|
|
98
121
|
}
|
|
99
122
|
|
|
123
|
+
/**
|
|
124
|
+
* Delete file
|
|
125
|
+
* @param key file name
|
|
126
|
+
* @param isPublic does this file public or private
|
|
127
|
+
*/
|
|
100
128
|
async deleteFile(key: string, isPublic: boolean) {
|
|
129
|
+
// TODO: add error handler and status response true
|
|
101
130
|
await this.callApi({
|
|
102
131
|
method: 'delete',
|
|
103
132
|
route: 'api/files',
|
|
@@ -108,7 +137,12 @@ export class Files extends Base {
|
|
|
108
137
|
});
|
|
109
138
|
}
|
|
110
139
|
|
|
140
|
+
/**
|
|
141
|
+
* Delete folder
|
|
142
|
+
* @param key folder name
|
|
143
|
+
*/
|
|
111
144
|
async deleteFolder(key: string) {
|
|
145
|
+
// TODO: add error handler and status response true
|
|
112
146
|
await this.callApi({
|
|
113
147
|
method: 'delete',
|
|
114
148
|
route: 'api/folder',
|
|
@@ -116,27 +150,13 @@ export class Files extends Base {
|
|
|
116
150
|
});
|
|
117
151
|
}
|
|
118
152
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
isPublic,
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
async serviceMetadata() {
|
|
131
|
-
// TODO: i don't know what is it, should test it
|
|
132
|
-
await this.callApi({
|
|
133
|
-
method: 'get',
|
|
134
|
-
route: 'api/meta',
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
|
|
153
|
+
/**
|
|
154
|
+
* Get a link to download file, example: for preview
|
|
155
|
+
* @param key folder name
|
|
156
|
+
* @param isPublic does this file public or private
|
|
157
|
+
* @return file url
|
|
158
|
+
*/
|
|
138
159
|
async getDownloadUrl(key: string, isPublic: boolean): Promise<string> {
|
|
139
|
-
// TODO: test it
|
|
140
160
|
return await this.callApi({
|
|
141
161
|
method: 'get',
|
|
142
162
|
route: 'api/url',
|
|
@@ -147,116 +167,56 @@ export class Files extends Base {
|
|
|
147
167
|
});
|
|
148
168
|
}
|
|
149
169
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
...options,
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
async getUploadUrl(data: UploadUrlProps, isPublic: boolean): Promise<{ url: string; fields: { key: string; value: any; }[]; }> {
|
|
164
|
-
return await this.callApi({
|
|
170
|
+
/**
|
|
171
|
+
* Get a link for uploading specific file, JUST FOR INNER USE
|
|
172
|
+
* @param data has UploadUrlProps values inside
|
|
173
|
+
* @param isPublic does this file public or private
|
|
174
|
+
* @return uploading Url with different header Fields
|
|
175
|
+
*/
|
|
176
|
+
private getUploadUrl(data: UploadUrlProps, isPublic: boolean): Promise<UploadUrlResponse> {
|
|
177
|
+
return this.callApi({
|
|
165
178
|
method: 'post',
|
|
166
179
|
route: 'api/url',
|
|
167
180
|
params: {
|
|
168
181
|
isPublic,
|
|
182
|
+
prefix: '',
|
|
169
183
|
},
|
|
170
184
|
data: { ...data },
|
|
171
185
|
});
|
|
172
186
|
}
|
|
173
187
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
data: {
|
|
179
|
-
postfix,
|
|
180
|
-
files,
|
|
181
|
-
// old version
|
|
182
|
-
// files: _.map(files, file => _.omit(file, ['fileDescriptor'])),
|
|
183
|
-
// ...(!_.isEmpty(options) && options),
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Upload file to S3 bucket
|
|
190
|
+
* @param file file itself for uploading with prefix (path) and isPublic boolean
|
|
191
|
+
*/
|
|
188
192
|
async uploadFile(file: UploadFileProps) {
|
|
189
193
|
const { type, name } = file.fileModel;
|
|
190
194
|
const contentType = type || 'binary/octet-stream';
|
|
191
|
-
const cacheControl = file.ttl ? `max-age=${file.ttl}` : 'no-cache';
|
|
192
195
|
|
|
193
196
|
const { url, fields } = await this.getUploadUrl({
|
|
194
197
|
contentType,
|
|
195
198
|
key: file.prefix + name,
|
|
196
|
-
|
|
197
|
-
cacheControl,
|
|
199
|
+
cacheControl: 'no-cache',
|
|
198
200
|
}, file.isPublic);
|
|
199
201
|
|
|
200
|
-
const
|
|
201
|
-
const formData = new FormDataLib();
|
|
202
|
+
const formData = new FormData();
|
|
202
203
|
|
|
203
|
-
fields.forEach(
|
|
204
|
-
|
|
204
|
+
Object.entries(fields).forEach(value => {
|
|
205
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
206
|
+
// @ts-ignore
|
|
207
|
+
formData.append(value[0], value[1]);
|
|
205
208
|
});
|
|
206
209
|
|
|
207
|
-
formData.append('cache-control',
|
|
210
|
+
formData.append('cache-control', 'no-cache');
|
|
208
211
|
formData.append('content-type', contentType);
|
|
209
|
-
formData.append('File', file.fileModel
|
|
212
|
+
formData.append('File', file.fileModel, name);
|
|
210
213
|
|
|
214
|
+
const route = url.split('api.onereach.ai/')[1];
|
|
211
215
|
|
|
212
216
|
return await this.callApi({
|
|
213
217
|
method: 'post',
|
|
214
|
-
route:
|
|
215
|
-
|
|
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];
|
|
241
|
-
|
|
242
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
243
|
-
// @ts-ignore
|
|
244
|
-
fields.forEach(value => {
|
|
245
|
-
formData.append(value.key, value);
|
|
246
|
-
});
|
|
247
|
-
|
|
248
|
-
formData.append('cache-control', file.cacheControl);
|
|
249
|
-
formData.append('content-type', file.contentType);
|
|
250
|
-
|
|
251
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
252
|
-
// @ts-ignore
|
|
253
|
-
formData.append('File', file.fileDescriptor, file.name);
|
|
254
|
-
|
|
255
|
-
return await this.callApi({
|
|
256
|
-
method: 'post',
|
|
257
|
-
route: url,
|
|
258
|
-
data: { formData },
|
|
259
|
-
});
|
|
218
|
+
route: route,
|
|
219
|
+
data: formData,
|
|
260
220
|
});
|
|
261
221
|
}
|
|
262
222
|
}
|
package/src/types.ts
CHANGED
|
@@ -19,9 +19,9 @@ export type FilesConfig = {
|
|
|
19
19
|
serviceUrl?: string;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
-
export type
|
|
22
|
+
export type GetItemsQuery = {
|
|
23
23
|
isPublic: boolean;
|
|
24
|
-
|
|
24
|
+
treePrefix: string;
|
|
25
25
|
nextToken?: string;
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -40,7 +40,7 @@ export type FilesPageState = {
|
|
|
40
40
|
renameTo: string;
|
|
41
41
|
items: FileItem[];
|
|
42
42
|
};
|
|
43
|
-
export type
|
|
43
|
+
export type GetItemsListResponse = {
|
|
44
44
|
items: FileItem[];
|
|
45
45
|
nextTokenResponse: string | null;
|
|
46
46
|
};
|
|
@@ -48,25 +48,27 @@ export type getItemsListResponse = {
|
|
|
48
48
|
export type UploadUrlProps = {
|
|
49
49
|
key: string;
|
|
50
50
|
contentType: string;
|
|
51
|
-
maxFileSize
|
|
51
|
+
maxFileSize?: number;
|
|
52
52
|
cacheControl: string;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
-
export type
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
export type UploadUrlResponse = {
|
|
56
|
+
url: string;
|
|
57
|
+
fields: {
|
|
58
|
+
key: string;
|
|
59
|
+
bucket: string;
|
|
60
|
+
Policy: string;
|
|
61
|
+
'X-Amz-Date': string;
|
|
62
|
+
'X-Amz-Signature': string;
|
|
63
|
+
'X-Amz-Algorithm': string;
|
|
64
|
+
'X-Amz-Credential': string;
|
|
65
|
+
'X-Amz-Security-Token': string;
|
|
66
|
+
}[];
|
|
61
67
|
};
|
|
62
68
|
|
|
63
69
|
export type UploadFileProps = {
|
|
64
|
-
fileModel:
|
|
70
|
+
fileModel: File;
|
|
65
71
|
prefix: string;
|
|
66
72
|
isPublic: boolean;
|
|
67
|
-
expires: any;
|
|
68
|
-
progress: any;
|
|
69
|
-
maxFileSize: number;
|
|
70
|
-
ttl: number;
|
|
71
73
|
};
|
|
72
74
|
|