@eluvio/elv-client-js 4.0.7 → 4.0.9
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/ElvClient-min.js +10 -11
- package/dist/ElvClient-node-min.js +10 -11
- package/dist/ElvFrameClient-min.js +10 -11
- package/dist/ElvPermissionsClient-min.js +9 -10
- package/dist/ElvWalletClient-min.js +10 -11
- package/dist/ElvWalletClient-node-min.js +9 -10
- package/dist/src/AuthorizationClient.js +2069 -1548
- package/dist/src/ContentObjectVerification.js +185 -134
- package/dist/src/Crypto.js +323 -226
- package/dist/src/ElvClient.js +1118 -824
- package/dist/src/ElvWallet.js +106 -64
- package/dist/src/EthClient.js +974 -719
- package/dist/src/FrameClient.js +318 -222
- package/dist/src/HttpClient.js +154 -112
- package/dist/src/Id.js +6 -1
- package/dist/src/LogMessage.js +8 -4
- package/dist/src/PermissionsClient.js +1271 -973
- package/dist/src/RemoteSigner.js +232 -161
- package/dist/src/UserProfileClient.js +1038 -781
- package/dist/src/Utils.js +302 -160
- package/dist/src/Validation.js +17 -2
- package/dist/src/client/ABRPublishing.js +942 -772
- package/dist/src/client/AccessGroups.js +1095 -849
- package/dist/src/client/ContentAccess.js +4198 -3272
- package/dist/src/client/ContentManagement.js +2284 -1812
- package/dist/src/client/Contracts.js +614 -468
- package/dist/src/client/Files.js +1831 -1491
- package/dist/src/client/NFT.js +116 -94
- package/dist/src/client/NTP.js +425 -326
- package/dist/src/index.js +5 -2
- package/dist/src/walletClient/ClientMethods.js +1766 -1350
- package/dist/src/walletClient/Configuration.js +2 -4
- package/dist/src/walletClient/Notifications.js +127 -98
- package/dist/src/walletClient/Profile.js +246 -184
- package/dist/src/walletClient/Utils.js +124 -78
- package/dist/src/walletClient/index.js +1498 -1169
- package/package.json +1 -1
- package/src/Crypto.js +2 -2
- package/src/ElvClient.js +2 -2
- package/src/Utils.js +1 -1
- package/src/client/ContentAccess.js +27 -10
- package/src/client/Files.js +1 -1
- package/src/walletClient/ClientMethods.js +18 -10
- package/src/walletClient/Utils.js +2 -2
- package/src/walletClient/index.js +7 -2
package/dist/src/client/Files.js
CHANGED
|
@@ -1,29 +1,36 @@
|
|
|
1
1
|
var _defineProperty = require("@babel/runtime/helpers/defineProperty");
|
|
2
|
+
|
|
2
3
|
var _regeneratorRuntime = require("@babel/runtime/regenerator");
|
|
4
|
+
|
|
3
5
|
var _asyncToGenerator = require("@babel/runtime/helpers/asyncToGenerator");
|
|
6
|
+
|
|
4
7
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
8
|
+
|
|
5
9
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
10
|
+
|
|
6
11
|
/**
|
|
7
12
|
* Methods for accessing and managing access groups
|
|
8
13
|
*
|
|
9
14
|
* @module ElvClient/Files+Parts
|
|
10
15
|
*/
|
|
11
|
-
|
|
12
16
|
var Utils = require("../Utils");
|
|
17
|
+
|
|
13
18
|
var fs;
|
|
19
|
+
|
|
14
20
|
if (Utils.Platform() === Utils.PLATFORM_NODE) {
|
|
15
21
|
// Define Response in node
|
|
16
22
|
// eslint-disable-next-line no-global-assign
|
|
17
|
-
|
|
23
|
+
globalThis.Response = require("node-fetch").Response;
|
|
18
24
|
fs = require("fs");
|
|
19
25
|
}
|
|
26
|
+
|
|
20
27
|
var UrlJoin = require("url-join");
|
|
21
|
-
var _require = require("../Validation"),
|
|
22
|
-
ValidatePresence = _require.ValidatePresence,
|
|
23
|
-
ValidateWriteToken = _require.ValidateWriteToken,
|
|
24
|
-
ValidatePartHash = _require.ValidatePartHash,
|
|
25
|
-
ValidateParameters = _require.ValidateParameters;
|
|
26
28
|
|
|
29
|
+
var _require = require("../Validation"),
|
|
30
|
+
ValidatePresence = _require.ValidatePresence,
|
|
31
|
+
ValidateWriteToken = _require.ValidateWriteToken,
|
|
32
|
+
ValidatePartHash = _require.ValidatePartHash,
|
|
33
|
+
ValidateParameters = _require.ValidateParameters;
|
|
27
34
|
/* Files */
|
|
28
35
|
|
|
29
36
|
/**
|
|
@@ -36,51 +43,59 @@ var _require = require("../Validation"),
|
|
|
36
43
|
* @param {string=} objectId - ID of the object
|
|
37
44
|
* @param {string=} versionHash - Hash of the object version - if not specified, most recent version will be used
|
|
38
45
|
*/
|
|
46
|
+
|
|
47
|
+
|
|
39
48
|
exports.ListFiles = /*#__PURE__*/function () {
|
|
40
49
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
41
50
|
var libraryId, objectId, versionHash, path;
|
|
42
51
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
43
|
-
while (1)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
52
|
+
while (1) {
|
|
53
|
+
switch (_context.prev = _context.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
libraryId = _ref.libraryId, objectId = _ref.objectId, versionHash = _ref.versionHash;
|
|
56
|
+
ValidateParameters({
|
|
57
|
+
libraryId: libraryId,
|
|
58
|
+
objectId: objectId,
|
|
59
|
+
versionHash: versionHash
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
if (versionHash) {
|
|
63
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
path = UrlJoin("q", versionHash || objectId, "meta", "files");
|
|
67
|
+
_context.t0 = this.utils;
|
|
68
|
+
_context.t1 = this.HttpClient;
|
|
69
|
+
_context.next = 8;
|
|
70
|
+
return this.authClient.AuthorizationHeader({
|
|
71
|
+
libraryId: libraryId,
|
|
72
|
+
objectId: objectId,
|
|
73
|
+
versionHash: versionHash
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
case 8:
|
|
77
|
+
_context.t2 = _context.sent;
|
|
78
|
+
_context.t3 = path;
|
|
79
|
+
_context.t4 = {
|
|
80
|
+
headers: _context.t2,
|
|
81
|
+
method: "GET",
|
|
82
|
+
path: _context.t3
|
|
83
|
+
};
|
|
84
|
+
_context.t5 = _context.t1.Request.call(_context.t1, _context.t4);
|
|
85
|
+
return _context.abrupt("return", _context.t0.ResponseToJson.call(_context.t0, _context.t5));
|
|
86
|
+
|
|
87
|
+
case 13:
|
|
88
|
+
case "end":
|
|
89
|
+
return _context.stop();
|
|
90
|
+
}
|
|
76
91
|
}
|
|
77
92
|
}, _callee, this);
|
|
78
93
|
}));
|
|
94
|
+
|
|
79
95
|
return function (_x) {
|
|
80
96
|
return _ref2.apply(this, arguments);
|
|
81
97
|
};
|
|
82
98
|
}();
|
|
83
|
-
|
|
84
99
|
/**
|
|
85
100
|
* Copy/reference files from S3 to a content object.
|
|
86
101
|
*
|
|
@@ -115,202 +130,243 @@ exports.ListFiles = /*#__PURE__*/function () {
|
|
|
115
130
|
* - Arguments (copy): { done: boolean, uploaded: number, total: number, uploadedFiles: number, totalFiles: number, fileStatus: Object }
|
|
116
131
|
* - Arguments (reference): { done: boolean, uploadedFiles: number, totalFiles: number }
|
|
117
132
|
*/
|
|
133
|
+
|
|
134
|
+
|
|
118
135
|
exports.UploadFilesFromS3 = /*#__PURE__*/function () {
|
|
119
136
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(_ref3) {
|
|
120
137
|
var libraryId, objectId, writeToken, region, bucket, fileInfo, accessKey, secret, signedUrl, _ref3$encryption, encryption, _ref3$copy, copy, callback, s3prefixRegex, i, fileSourcePath, s3prefixMatch, bucketName, encryption_key, conk, cloudCredentials, defaults, ops, _yield$this$CreateFil, id, status, done, progress, _progress;
|
|
138
|
+
|
|
121
139
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
122
|
-
while (1)
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
140
|
+
while (1) {
|
|
141
|
+
switch (_context2.prev = _context2.next) {
|
|
142
|
+
case 0:
|
|
143
|
+
libraryId = _ref3.libraryId, objectId = _ref3.objectId, writeToken = _ref3.writeToken, region = _ref3.region, bucket = _ref3.bucket, fileInfo = _ref3.fileInfo, accessKey = _ref3.accessKey, secret = _ref3.secret, signedUrl = _ref3.signedUrl, _ref3$encryption = _ref3.encryption, encryption = _ref3$encryption === void 0 ? "none" : _ref3$encryption, _ref3$copy = _ref3.copy, copy = _ref3$copy === void 0 ? false : _ref3$copy, callback = _ref3.callback;
|
|
144
|
+
ValidateParameters({
|
|
145
|
+
libraryId: libraryId,
|
|
146
|
+
objectId: objectId
|
|
147
|
+
});
|
|
148
|
+
ValidateWriteToken(writeToken);
|
|
149
|
+
s3prefixRegex = /^s3:\/\/([^/]+)\//i; // for matching and extracting bucket name when full s3:// path is specified
|
|
150
|
+
// if fileInfo source paths start with s3://bucketName/, check against bucket arg passed in, and strip
|
|
151
|
+
|
|
152
|
+
i = 0;
|
|
153
|
+
|
|
154
|
+
case 5:
|
|
155
|
+
if (!(i < fileInfo.length)) {
|
|
156
|
+
_context2.next = 18;
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
fileSourcePath = fileInfo[i].source;
|
|
161
|
+
s3prefixMatch = s3prefixRegex.exec(fileSourcePath);
|
|
162
|
+
|
|
163
|
+
if (!s3prefixMatch) {
|
|
164
|
+
_context2.next = 15;
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
bucketName = s3prefixMatch[1];
|
|
169
|
+
|
|
170
|
+
if (!(bucketName !== bucket)) {
|
|
171
|
+
_context2.next = 14;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
throw Error("Full S3 file path \"" + fileSourcePath + "\" specified, but does not match provided bucket name '" + bucket + "'");
|
|
176
|
+
|
|
177
|
+
case 14:
|
|
178
|
+
// strip prefix
|
|
179
|
+
fileInfo[i].source = fileSourcePath.replace(s3prefixRegex, "");
|
|
180
|
+
|
|
181
|
+
case 15:
|
|
182
|
+
i++;
|
|
183
|
+
_context2.next = 5;
|
|
161
184
|
break;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
185
|
+
|
|
186
|
+
case 18:
|
|
187
|
+
this.Log("Uploading files from S3: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
188
|
+
|
|
189
|
+
if (!(encryption === "cgck")) {
|
|
190
|
+
_context2.next = 25;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
_context2.next = 22;
|
|
195
|
+
return this.EncryptionConk({
|
|
196
|
+
libraryId: libraryId,
|
|
197
|
+
objectId: objectId,
|
|
198
|
+
writeToken: writeToken
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
case 22:
|
|
202
|
+
conk = _context2.sent;
|
|
203
|
+
conk = _objectSpread(_objectSpread({}, conk), {}, {
|
|
204
|
+
secret_key: ""
|
|
205
|
+
});
|
|
206
|
+
encryption_key = "kp__".concat(this.utils.B58(Buffer.from(JSON.stringify(conk))));
|
|
207
|
+
|
|
208
|
+
case 25:
|
|
181
209
|
cloudCredentials = {
|
|
182
|
-
|
|
210
|
+
access_key_id: accessKey,
|
|
211
|
+
secret_access_key: secret
|
|
183
212
|
};
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
platform: "aws",
|
|
190
|
-
path: bucket,
|
|
191
|
-
storage_endpoint: {
|
|
192
|
-
region: region
|
|
193
|
-
},
|
|
194
|
-
cloud_credentials: cloudCredentials
|
|
213
|
+
|
|
214
|
+
if (signedUrl) {
|
|
215
|
+
cloudCredentials = {
|
|
216
|
+
signed_url: signedUrl
|
|
217
|
+
};
|
|
195
218
|
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
219
|
+
|
|
220
|
+
defaults = {
|
|
221
|
+
encryption_key: encryption_key,
|
|
222
|
+
access: {
|
|
223
|
+
protocol: "s3",
|
|
224
|
+
platform: "aws",
|
|
225
|
+
path: bucket,
|
|
226
|
+
storage_endpoint: {
|
|
227
|
+
region: region
|
|
204
228
|
},
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
229
|
+
cloud_credentials: cloudCredentials
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
ops = fileInfo.map(function (info) {
|
|
233
|
+
if (copy) {
|
|
234
|
+
return {
|
|
235
|
+
op: "ingest-copy",
|
|
236
|
+
path: info.path,
|
|
237
|
+
encryption: {
|
|
238
|
+
scheme: encryption === "cgck" ? "cgck" : "none"
|
|
239
|
+
},
|
|
240
|
+
ingest: {
|
|
241
|
+
type: "key",
|
|
242
|
+
path: info.source
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
} else {
|
|
246
|
+
return {
|
|
247
|
+
op: "add-reference",
|
|
248
|
+
path: info.path,
|
|
249
|
+
reference: {
|
|
250
|
+
type: "key",
|
|
251
|
+
path: info.source
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}); // eslint-disable-next-line no-unused-vars
|
|
256
|
+
|
|
257
|
+
_context2.next = 31;
|
|
258
|
+
return this.CreateFileUploadJob({
|
|
259
|
+
libraryId: libraryId,
|
|
260
|
+
objectId: objectId,
|
|
261
|
+
writeToken: writeToken,
|
|
262
|
+
ops: ops,
|
|
263
|
+
defaults: defaults
|
|
264
|
+
});
|
|
265
|
+
|
|
266
|
+
case 31:
|
|
267
|
+
_yield$this$CreateFil = _context2.sent;
|
|
268
|
+
id = _yield$this$CreateFil.id;
|
|
269
|
+
|
|
270
|
+
case 33:
|
|
271
|
+
if (!true) {
|
|
272
|
+
_context2.next = 56;
|
|
273
|
+
break;
|
|
219
274
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
case 36:
|
|
242
|
-
_context2.next = 38;
|
|
243
|
-
return this.UploadStatus({
|
|
244
|
-
libraryId: libraryId,
|
|
245
|
-
objectId: objectId,
|
|
246
|
-
writeToken: writeToken,
|
|
247
|
-
uploadId: id
|
|
248
|
-
});
|
|
249
|
-
case 38:
|
|
250
|
-
status = _context2.sent;
|
|
251
|
-
if (!(status.errors && status.errors.length > 1)) {
|
|
252
|
-
_context2.next = 43;
|
|
253
|
-
break;
|
|
254
|
-
}
|
|
255
|
-
throw status.errors.join("\n");
|
|
256
|
-
case 43:
|
|
257
|
-
if (!status.error) {
|
|
258
|
-
_context2.next = 48;
|
|
259
|
-
break;
|
|
260
|
-
}
|
|
261
|
-
this.Log("S3 file upload failed:\n".concat(JSON.stringify(status, null, 2)));
|
|
262
|
-
throw status.error;
|
|
263
|
-
case 48:
|
|
264
|
-
if (!(status.status.toLowerCase() === "failed")) {
|
|
265
|
-
_context2.next = 50;
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
throw "File upload failed";
|
|
269
|
-
case 50:
|
|
270
|
-
done = false;
|
|
271
|
-
if (copy) {
|
|
272
|
-
done = status.ingest_copy.done;
|
|
273
|
-
if (callback) {
|
|
274
|
-
progress = status.ingest_copy.progress;
|
|
275
|
-
callback({
|
|
276
|
-
done: done,
|
|
277
|
-
uploaded: progress.bytes.completed,
|
|
278
|
-
total: progress.bytes.total,
|
|
279
|
-
uploadedFiles: progress.files.completed,
|
|
280
|
-
totalFiles: progress.files.total,
|
|
281
|
-
fileStatus: progress.files.details
|
|
282
|
-
});
|
|
275
|
+
|
|
276
|
+
_context2.next = 36;
|
|
277
|
+
return new Promise(function (resolve) {
|
|
278
|
+
return setTimeout(resolve, 1000);
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
case 36:
|
|
282
|
+
_context2.next = 38;
|
|
283
|
+
return this.UploadStatus({
|
|
284
|
+
libraryId: libraryId,
|
|
285
|
+
objectId: objectId,
|
|
286
|
+
writeToken: writeToken,
|
|
287
|
+
uploadId: id
|
|
288
|
+
});
|
|
289
|
+
|
|
290
|
+
case 38:
|
|
291
|
+
status = _context2.sent;
|
|
292
|
+
|
|
293
|
+
if (!(status.errors && status.errors.length > 1)) {
|
|
294
|
+
_context2.next = 43;
|
|
295
|
+
break;
|
|
283
296
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
totalFiles: _progress.total
|
|
292
|
-
});
|
|
297
|
+
|
|
298
|
+
throw status.errors.join("\n");
|
|
299
|
+
|
|
300
|
+
case 43:
|
|
301
|
+
if (!status.error) {
|
|
302
|
+
_context2.next = 48;
|
|
303
|
+
break;
|
|
293
304
|
}
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
305
|
+
|
|
306
|
+
this.Log("S3 file upload failed:\n".concat(JSON.stringify(status, null, 2)));
|
|
307
|
+
throw status.error;
|
|
308
|
+
|
|
309
|
+
case 48:
|
|
310
|
+
if (!(status.status.toLowerCase() === "failed")) {
|
|
311
|
+
_context2.next = 50;
|
|
312
|
+
break;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
throw "File upload failed";
|
|
316
|
+
|
|
317
|
+
case 50:
|
|
318
|
+
done = false;
|
|
319
|
+
|
|
320
|
+
if (copy) {
|
|
321
|
+
done = status.ingest_copy.done;
|
|
322
|
+
|
|
323
|
+
if (callback) {
|
|
324
|
+
progress = status.ingest_copy.progress;
|
|
325
|
+
callback({
|
|
326
|
+
done: done,
|
|
327
|
+
uploaded: progress.bytes.completed,
|
|
328
|
+
total: progress.bytes.total,
|
|
329
|
+
uploadedFiles: progress.files.completed,
|
|
330
|
+
totalFiles: progress.files.total,
|
|
331
|
+
fileStatus: progress.files.details
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
} else {
|
|
335
|
+
done = status.add_reference.done;
|
|
336
|
+
|
|
337
|
+
if (callback) {
|
|
338
|
+
_progress = status.add_reference.progress;
|
|
339
|
+
callback({
|
|
340
|
+
done: done,
|
|
341
|
+
uploadedFiles: _progress.completed,
|
|
342
|
+
totalFiles: _progress.total
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
if (!done) {
|
|
348
|
+
_context2.next = 54;
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
return _context2.abrupt("break", 56);
|
|
353
|
+
|
|
354
|
+
case 54:
|
|
355
|
+
_context2.next = 33;
|
|
297
356
|
break;
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
case 56:
|
|
304
|
-
case "end":
|
|
305
|
-
return _context2.stop();
|
|
357
|
+
|
|
358
|
+
case 56:
|
|
359
|
+
case "end":
|
|
360
|
+
return _context2.stop();
|
|
361
|
+
}
|
|
306
362
|
}
|
|
307
363
|
}, _callee2, this);
|
|
308
364
|
}));
|
|
365
|
+
|
|
309
366
|
return function (_x2) {
|
|
310
367
|
return _ref4.apply(this, arguments);
|
|
311
368
|
};
|
|
312
369
|
}();
|
|
313
|
-
|
|
314
370
|
/**
|
|
315
371
|
* Upload files to a content object.
|
|
316
372
|
*
|
|
@@ -337,530 +393,629 @@ exports.UploadFilesFromS3 = /*#__PURE__*/function () {
|
|
|
337
393
|
* @param {function=} callback - If specified, will be called after each job segment is finished with the current upload progress
|
|
338
394
|
* - Format: {"filename1": {uploaded: number, total: number}, ...}
|
|
339
395
|
*/
|
|
396
|
+
|
|
397
|
+
|
|
340
398
|
exports.UploadFiles = /*#__PURE__*/function () {
|
|
341
399
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(_ref5) {
|
|
342
400
|
var _this = this;
|
|
401
|
+
|
|
343
402
|
var libraryId, objectId, writeToken, fileInfo, _ref5$encryption, encryption, callback, conk, progress, fileDataMap, i, entry, _yield$this$CreateFil2, id, jobs, bufferSize, jobSpecs, prepared, uploaded, PrepareJobs, UploadJob, rateTestJobs, rates, j, start, elapsed, size, averageRate, concurrentUploads;
|
|
403
|
+
|
|
344
404
|
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
345
|
-
while (1)
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
ValidateWriteToken(writeToken);
|
|
353
|
-
this.Log("Uploading files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
354
|
-
if (!(encryption === "cgck")) {
|
|
355
|
-
_context6.next = 8;
|
|
356
|
-
break;
|
|
357
|
-
}
|
|
358
|
-
_context6.next = 7;
|
|
359
|
-
return this.EncryptionConk({
|
|
360
|
-
libraryId: libraryId,
|
|
361
|
-
objectId: objectId,
|
|
362
|
-
writeToken: writeToken
|
|
363
|
-
});
|
|
364
|
-
case 7:
|
|
365
|
-
conk = _context6.sent;
|
|
366
|
-
case 8:
|
|
367
|
-
// Extract file data into easily accessible hash while removing the data from the fileinfo for upload job creation
|
|
368
|
-
progress = {};
|
|
369
|
-
fileDataMap = {};
|
|
370
|
-
for (i = 0; i < fileInfo.length; i++) {
|
|
371
|
-
entry = _objectSpread(_objectSpread({}, fileInfo[i]), {}, {
|
|
372
|
-
data: undefined
|
|
405
|
+
while (1) {
|
|
406
|
+
switch (_context6.prev = _context6.next) {
|
|
407
|
+
case 0:
|
|
408
|
+
libraryId = _ref5.libraryId, objectId = _ref5.objectId, writeToken = _ref5.writeToken, fileInfo = _ref5.fileInfo, _ref5$encryption = _ref5.encryption, encryption = _ref5$encryption === void 0 ? "none" : _ref5$encryption, callback = _ref5.callback;
|
|
409
|
+
ValidateParameters({
|
|
410
|
+
libraryId: libraryId,
|
|
411
|
+
objectId: objectId
|
|
373
412
|
});
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
413
|
+
ValidateWriteToken(writeToken);
|
|
414
|
+
this.Log("Uploading files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
415
|
+
|
|
416
|
+
if (!(encryption === "cgck")) {
|
|
417
|
+
_context6.next = 8;
|
|
418
|
+
break;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
_context6.next = 7;
|
|
422
|
+
return this.EncryptionConk({
|
|
423
|
+
libraryId: libraryId,
|
|
424
|
+
objectId: objectId,
|
|
425
|
+
writeToken: writeToken
|
|
426
|
+
});
|
|
427
|
+
|
|
428
|
+
case 7:
|
|
429
|
+
conk = _context6.sent;
|
|
430
|
+
|
|
431
|
+
case 8:
|
|
432
|
+
// Extract file data into easily accessible hash while removing the data from the fileinfo for upload job creation
|
|
433
|
+
progress = {};
|
|
434
|
+
fileDataMap = {};
|
|
435
|
+
|
|
436
|
+
for (i = 0; i < fileInfo.length; i++) {
|
|
437
|
+
entry = _objectSpread(_objectSpread({}, fileInfo[i]), {}, {
|
|
438
|
+
data: undefined
|
|
439
|
+
});
|
|
440
|
+
entry.path = entry.path.replace(/^\/+/, "");
|
|
441
|
+
|
|
442
|
+
if (encryption === "cgck") {
|
|
443
|
+
entry.encryption = {
|
|
444
|
+
scheme: "cgck"
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
fileDataMap[entry.path] = fileInfo[i].data;
|
|
449
|
+
delete entry.data;
|
|
450
|
+
entry.type = "file";
|
|
451
|
+
progress[entry.path] = {
|
|
452
|
+
uploaded: 0,
|
|
453
|
+
total: entry.size
|
|
378
454
|
};
|
|
455
|
+
fileInfo[i] = entry;
|
|
379
456
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
if (jobSpecs[j]) {
|
|
510
|
-
_context4.next = 5;
|
|
511
|
-
break;
|
|
512
|
-
}
|
|
513
|
-
_context4.next = 3;
|
|
514
|
-
return new Promise(function (resolve) {
|
|
515
|
-
return setTimeout(resolve, 500);
|
|
516
|
-
});
|
|
517
|
-
case 3:
|
|
518
|
-
_context4.next = 0;
|
|
519
|
-
break;
|
|
520
|
-
case 5:
|
|
521
|
-
jobSpec = jobSpecs[j];
|
|
522
|
-
files = jobSpec.files; // Upload each item
|
|
523
|
-
f = 0;
|
|
524
|
-
case 8:
|
|
525
|
-
if (!(f < files.length)) {
|
|
526
|
-
_context4.next = 18;
|
|
527
|
-
break;
|
|
457
|
+
|
|
458
|
+
this.Log(fileInfo);
|
|
459
|
+
|
|
460
|
+
if (callback) {
|
|
461
|
+
callback(progress);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
_context6.next = 15;
|
|
465
|
+
return this.CreateFileUploadJob({
|
|
466
|
+
libraryId: libraryId,
|
|
467
|
+
objectId: objectId,
|
|
468
|
+
writeToken: writeToken,
|
|
469
|
+
ops: fileInfo,
|
|
470
|
+
encryption: encryption
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
case 15:
|
|
474
|
+
_yield$this$CreateFil2 = _context6.sent;
|
|
475
|
+
id = _yield$this$CreateFil2.id;
|
|
476
|
+
jobs = _yield$this$CreateFil2.jobs;
|
|
477
|
+
this.Log("Upload ID: ".concat(id));
|
|
478
|
+
this.Log(jobs); // How far encryption can get ahead of upload
|
|
479
|
+
|
|
480
|
+
bufferSize = 100 * 1024 * 1024;
|
|
481
|
+
jobSpecs = [];
|
|
482
|
+
prepared = 0;
|
|
483
|
+
uploaded = 0; // Insert the data to upload into the job spec, encrypting if necessary
|
|
484
|
+
|
|
485
|
+
PrepareJobs = /*#__PURE__*/function () {
|
|
486
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
487
|
+
var j, jobId, job, f, _fileInfo, data;
|
|
488
|
+
|
|
489
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
490
|
+
while (1) {
|
|
491
|
+
switch (_context3.prev = _context3.next) {
|
|
492
|
+
case 0:
|
|
493
|
+
j = 0;
|
|
494
|
+
|
|
495
|
+
case 1:
|
|
496
|
+
if (!(j < jobs.length)) {
|
|
497
|
+
_context3.next = 31;
|
|
498
|
+
break;
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
case 2:
|
|
502
|
+
if (!(prepared - uploaded > bufferSize)) {
|
|
503
|
+
_context3.next = 7;
|
|
504
|
+
break;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
_context3.next = 5;
|
|
508
|
+
return new Promise(function (resolve) {
|
|
509
|
+
return setTimeout(resolve, 500);
|
|
510
|
+
});
|
|
511
|
+
|
|
512
|
+
case 5:
|
|
513
|
+
_context3.next = 2;
|
|
514
|
+
break;
|
|
515
|
+
|
|
516
|
+
case 7:
|
|
517
|
+
// Retrieve job info
|
|
518
|
+
jobId = jobs[j];
|
|
519
|
+
_context3.next = 10;
|
|
520
|
+
return _this.UploadJobStatus({
|
|
521
|
+
libraryId: libraryId,
|
|
522
|
+
objectId: objectId,
|
|
523
|
+
writeToken: writeToken,
|
|
524
|
+
uploadId: id,
|
|
525
|
+
jobId: jobId
|
|
526
|
+
});
|
|
527
|
+
|
|
528
|
+
case 10:
|
|
529
|
+
job = _context3.sent;
|
|
530
|
+
f = 0;
|
|
531
|
+
|
|
532
|
+
case 12:
|
|
533
|
+
if (!(f < job.files.length)) {
|
|
534
|
+
_context3.next = 25;
|
|
535
|
+
break;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
_fileInfo = job.files[f];
|
|
539
|
+
data = void 0;
|
|
540
|
+
|
|
541
|
+
if (typeof fileDataMap[_fileInfo.path] === "number") {
|
|
542
|
+
// File descriptor - Read data from file
|
|
543
|
+
data = Buffer.alloc(_fileInfo.len);
|
|
544
|
+
fs.readSync(fileDataMap[_fileInfo.path], data, 0, _fileInfo.len, _fileInfo.off);
|
|
545
|
+
} else {
|
|
546
|
+
// Full data - Slice requested chunk
|
|
547
|
+
data = fileDataMap[_fileInfo.path].slice(_fileInfo.off, _fileInfo.off + _fileInfo.len);
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
if (!(encryption === "cgck")) {
|
|
551
|
+
_context3.next = 20;
|
|
552
|
+
break;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
_context3.next = 19;
|
|
556
|
+
return _this.Crypto.Encrypt(conk, data);
|
|
557
|
+
|
|
558
|
+
case 19:
|
|
559
|
+
data = _context3.sent;
|
|
560
|
+
|
|
561
|
+
case 20:
|
|
562
|
+
job.files[f].data = data;
|
|
563
|
+
prepared += _fileInfo.len;
|
|
564
|
+
|
|
565
|
+
case 22:
|
|
566
|
+
f++;
|
|
567
|
+
_context3.next = 12;
|
|
568
|
+
break;
|
|
569
|
+
|
|
570
|
+
case 25:
|
|
571
|
+
jobSpecs[j] = job; // Wait for a bit to let upload start
|
|
572
|
+
|
|
573
|
+
_context3.next = 28;
|
|
574
|
+
return new Promise(function (resolve) {
|
|
575
|
+
return setTimeout(resolve, 50);
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
case 28:
|
|
579
|
+
j++;
|
|
580
|
+
_context3.next = 1;
|
|
581
|
+
break;
|
|
582
|
+
|
|
583
|
+
case 31:
|
|
584
|
+
case "end":
|
|
585
|
+
return _context3.stop();
|
|
528
586
|
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
587
|
+
}
|
|
588
|
+
}, _callee3);
|
|
589
|
+
}));
|
|
590
|
+
|
|
591
|
+
return function PrepareJobs() {
|
|
592
|
+
return _ref7.apply(this, arguments);
|
|
593
|
+
};
|
|
594
|
+
}();
|
|
595
|
+
|
|
596
|
+
UploadJob = /*#__PURE__*/function () {
|
|
597
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(jobId, j) {
|
|
598
|
+
var jobSpec, files, f, _fileInfo2;
|
|
599
|
+
|
|
600
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
601
|
+
while (1) {
|
|
602
|
+
switch (_context4.prev = _context4.next) {
|
|
603
|
+
case 0:
|
|
604
|
+
if (jobSpecs[j]) {
|
|
605
|
+
_context4.next = 5;
|
|
606
|
+
break;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
_context4.next = 3;
|
|
610
|
+
return new Promise(function (resolve) {
|
|
611
|
+
return setTimeout(resolve, 500);
|
|
612
|
+
});
|
|
613
|
+
|
|
614
|
+
case 3:
|
|
615
|
+
_context4.next = 0;
|
|
616
|
+
break;
|
|
617
|
+
|
|
618
|
+
case 5:
|
|
619
|
+
jobSpec = jobSpecs[j];
|
|
620
|
+
files = jobSpec.files; // Upload each item
|
|
621
|
+
|
|
622
|
+
f = 0;
|
|
623
|
+
|
|
624
|
+
case 8:
|
|
625
|
+
if (!(f < files.length)) {
|
|
626
|
+
_context4.next = 18;
|
|
627
|
+
break;
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
_fileInfo2 = files[f];
|
|
631
|
+
_context4.next = 12;
|
|
632
|
+
return _this.UploadFileData({
|
|
633
|
+
libraryId: libraryId,
|
|
634
|
+
objectId: objectId,
|
|
635
|
+
writeToken: writeToken,
|
|
636
|
+
uploadId: id,
|
|
637
|
+
jobId: jobId,
|
|
638
|
+
fileData: _fileInfo2.data
|
|
639
|
+
});
|
|
640
|
+
|
|
641
|
+
case 12:
|
|
642
|
+
delete jobSpecs[j].files[f].data;
|
|
643
|
+
uploaded += _fileInfo2.len;
|
|
644
|
+
|
|
645
|
+
if (callback) {
|
|
646
|
+
progress[_fileInfo2.path] = _objectSpread(_objectSpread({}, progress[_fileInfo2.path]), {}, {
|
|
647
|
+
uploaded: progress[_fileInfo2.path].uploaded + _fileInfo2.len
|
|
648
|
+
});
|
|
649
|
+
callback(progress);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
case 15:
|
|
653
|
+
f++;
|
|
654
|
+
_context4.next = 8;
|
|
655
|
+
break;
|
|
656
|
+
|
|
657
|
+
case 18:
|
|
658
|
+
case "end":
|
|
659
|
+
return _context4.stop();
|
|
547
660
|
}
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
661
|
+
}
|
|
662
|
+
}, _callee4);
|
|
663
|
+
}));
|
|
664
|
+
|
|
665
|
+
return function UploadJob(_x4, _x5) {
|
|
666
|
+
return _ref8.apply(this, arguments);
|
|
667
|
+
};
|
|
668
|
+
}(); // Preparing jobs is done asyncronously
|
|
669
|
+
|
|
670
|
+
|
|
671
|
+
PrepareJobs(); // Upload the first several chunks in sequence, to determine average upload rate
|
|
672
|
+
|
|
673
|
+
rateTestJobs = Math.min(3, jobs.length);
|
|
674
|
+
rates = [];
|
|
675
|
+
j = 0;
|
|
676
|
+
|
|
677
|
+
case 30:
|
|
678
|
+
if (!(j < rateTestJobs)) {
|
|
679
|
+
_context6.next = 40;
|
|
680
|
+
break;
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
start = new Date().getTime();
|
|
684
|
+
_context6.next = 34;
|
|
685
|
+
return UploadJob(jobs[j], j);
|
|
686
|
+
|
|
687
|
+
case 34:
|
|
688
|
+
elapsed = (new Date().getTime() - start) / 1000;
|
|
689
|
+
size = jobSpecs[j].files.map(function (file) {
|
|
690
|
+
return file.len;
|
|
691
|
+
}).reduce(function (length, total) {
|
|
692
|
+
return length + total;
|
|
693
|
+
}, 0);
|
|
694
|
+
rates.push(size / elapsed / (1024 * 1024));
|
|
695
|
+
|
|
696
|
+
case 37:
|
|
697
|
+
j++;
|
|
698
|
+
_context6.next = 30;
|
|
571
699
|
break;
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
_context5.next = 2;
|
|
601
|
-
break;
|
|
700
|
+
|
|
701
|
+
case 40:
|
|
702
|
+
averageRate = rates.reduce(function (mbps, total) {
|
|
703
|
+
return mbps + total;
|
|
704
|
+
}, 0) / rateTestJobs; // Upload remaining jobs in parallel
|
|
705
|
+
|
|
706
|
+
concurrentUploads = Math.min(5, Math.ceil(averageRate / 2));
|
|
707
|
+
_context6.next = 44;
|
|
708
|
+
return this.utils.LimitedMap(concurrentUploads, jobs, /*#__PURE__*/function () {
|
|
709
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(jobId, j) {
|
|
710
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
711
|
+
while (1) {
|
|
712
|
+
switch (_context5.prev = _context5.next) {
|
|
713
|
+
case 0:
|
|
714
|
+
if (!(j < rateTestJobs)) {
|
|
715
|
+
_context5.next = 2;
|
|
716
|
+
break;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
return _context5.abrupt("return");
|
|
720
|
+
|
|
721
|
+
case 2:
|
|
722
|
+
_context5.next = 4;
|
|
723
|
+
return UploadJob(jobId, j);
|
|
724
|
+
|
|
725
|
+
case 4:
|
|
726
|
+
case "end":
|
|
727
|
+
return _context5.stop();
|
|
602
728
|
}
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
}());
|
|
617
|
-
case 44:
|
|
618
|
-
case "end":
|
|
619
|
-
return _context6.stop();
|
|
729
|
+
}
|
|
730
|
+
}, _callee5);
|
|
731
|
+
}));
|
|
732
|
+
|
|
733
|
+
return function (_x6, _x7) {
|
|
734
|
+
return _ref9.apply(this, arguments);
|
|
735
|
+
};
|
|
736
|
+
}());
|
|
737
|
+
|
|
738
|
+
case 44:
|
|
739
|
+
case "end":
|
|
740
|
+
return _context6.stop();
|
|
741
|
+
}
|
|
620
742
|
}
|
|
621
743
|
}, _callee6, this);
|
|
622
744
|
}));
|
|
745
|
+
|
|
623
746
|
return function (_x3) {
|
|
624
747
|
return _ref6.apply(this, arguments);
|
|
625
748
|
};
|
|
626
749
|
}();
|
|
750
|
+
|
|
627
751
|
exports.CreateFileUploadJob = /*#__PURE__*/function () {
|
|
628
752
|
var _ref11 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(_ref10) {
|
|
629
753
|
var libraryId, objectId, writeToken, ops, _ref10$defaults, defaults, _ref10$encryption, encryption, body, path;
|
|
754
|
+
|
|
630
755
|
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
631
|
-
while (1)
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
756
|
+
while (1) {
|
|
757
|
+
switch (_context7.prev = _context7.next) {
|
|
758
|
+
case 0:
|
|
759
|
+
libraryId = _ref10.libraryId, objectId = _ref10.objectId, writeToken = _ref10.writeToken, ops = _ref10.ops, _ref10$defaults = _ref10.defaults, defaults = _ref10$defaults === void 0 ? {} : _ref10$defaults, _ref10$encryption = _ref10.encryption, encryption = _ref10$encryption === void 0 ? "none" : _ref10$encryption;
|
|
760
|
+
ValidateParameters({
|
|
761
|
+
libraryId: libraryId,
|
|
762
|
+
objectId: objectId
|
|
763
|
+
});
|
|
764
|
+
ValidateWriteToken(writeToken);
|
|
765
|
+
this.Log("Creating file upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
766
|
+
this.Log(ops);
|
|
767
|
+
|
|
768
|
+
if (encryption === "cgck") {
|
|
769
|
+
defaults.encryption = {
|
|
770
|
+
scheme: "cgck"
|
|
771
|
+
};
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
body = {
|
|
775
|
+
seq: 0,
|
|
776
|
+
seq_complete: true,
|
|
777
|
+
defaults: defaults,
|
|
778
|
+
ops: ops
|
|
644
779
|
};
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
return _context7.abrupt("return", _context7.t0.ResponseToJson.call(_context7.t0, _context7.t6));
|
|
675
|
-
case 18:
|
|
676
|
-
case "end":
|
|
677
|
-
return _context7.stop();
|
|
780
|
+
path = UrlJoin("q", writeToken, "file_jobs");
|
|
781
|
+
_context7.t0 = this.utils;
|
|
782
|
+
_context7.t1 = this.HttpClient;
|
|
783
|
+
_context7.next = 12;
|
|
784
|
+
return this.authClient.AuthorizationHeader({
|
|
785
|
+
libraryId: libraryId,
|
|
786
|
+
objectId: objectId,
|
|
787
|
+
update: true,
|
|
788
|
+
encryption: encryption
|
|
789
|
+
});
|
|
790
|
+
|
|
791
|
+
case 12:
|
|
792
|
+
_context7.t2 = _context7.sent;
|
|
793
|
+
_context7.t3 = path;
|
|
794
|
+
_context7.t4 = body;
|
|
795
|
+
_context7.t5 = {
|
|
796
|
+
headers: _context7.t2,
|
|
797
|
+
method: "POST",
|
|
798
|
+
path: _context7.t3,
|
|
799
|
+
body: _context7.t4,
|
|
800
|
+
failover: false
|
|
801
|
+
};
|
|
802
|
+
_context7.t6 = _context7.t1.Request.call(_context7.t1, _context7.t5);
|
|
803
|
+
return _context7.abrupt("return", _context7.t0.ResponseToJson.call(_context7.t0, _context7.t6));
|
|
804
|
+
|
|
805
|
+
case 18:
|
|
806
|
+
case "end":
|
|
807
|
+
return _context7.stop();
|
|
808
|
+
}
|
|
678
809
|
}
|
|
679
810
|
}, _callee7, this);
|
|
680
811
|
}));
|
|
812
|
+
|
|
681
813
|
return function (_x8) {
|
|
682
814
|
return _ref11.apply(this, arguments);
|
|
683
815
|
};
|
|
684
816
|
}();
|
|
817
|
+
|
|
685
818
|
exports.UploadStatus = /*#__PURE__*/function () {
|
|
686
819
|
var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(_ref12) {
|
|
687
820
|
var libraryId, objectId, writeToken, uploadId, path;
|
|
688
821
|
return _regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
689
|
-
while (1)
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
822
|
+
while (1) {
|
|
823
|
+
switch (_context8.prev = _context8.next) {
|
|
824
|
+
case 0:
|
|
825
|
+
libraryId = _ref12.libraryId, objectId = _ref12.objectId, writeToken = _ref12.writeToken, uploadId = _ref12.uploadId;
|
|
826
|
+
ValidateParameters({
|
|
827
|
+
libraryId: libraryId,
|
|
828
|
+
objectId: objectId
|
|
829
|
+
});
|
|
830
|
+
ValidateWriteToken(writeToken);
|
|
831
|
+
path = UrlJoin("q", writeToken, "file_jobs", uploadId);
|
|
832
|
+
_context8.t0 = this.utils;
|
|
833
|
+
_context8.t1 = this.HttpClient;
|
|
834
|
+
_context8.next = 8;
|
|
835
|
+
return this.authClient.AuthorizationHeader({
|
|
836
|
+
libraryId: libraryId,
|
|
837
|
+
objectId: objectId,
|
|
838
|
+
update: true
|
|
839
|
+
});
|
|
840
|
+
|
|
841
|
+
case 8:
|
|
842
|
+
_context8.t2 = _context8.sent;
|
|
843
|
+
_context8.t3 = path;
|
|
844
|
+
_context8.t4 = {
|
|
845
|
+
headers: _context8.t2,
|
|
846
|
+
method: "GET",
|
|
847
|
+
path: _context8.t3,
|
|
848
|
+
failover: false
|
|
849
|
+
};
|
|
850
|
+
_context8.t5 = _context8.t1.Request.call(_context8.t1, _context8.t4);
|
|
851
|
+
return _context8.abrupt("return", _context8.t0.ResponseToJson.call(_context8.t0, _context8.t5));
|
|
852
|
+
|
|
853
|
+
case 13:
|
|
854
|
+
case "end":
|
|
855
|
+
return _context8.stop();
|
|
856
|
+
}
|
|
720
857
|
}
|
|
721
858
|
}, _callee8, this);
|
|
722
859
|
}));
|
|
860
|
+
|
|
723
861
|
return function (_x9) {
|
|
724
862
|
return _ref13.apply(this, arguments);
|
|
725
863
|
};
|
|
726
864
|
}();
|
|
865
|
+
|
|
727
866
|
exports.UploadJobStatus = /*#__PURE__*/function () {
|
|
728
867
|
var _ref15 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9(_ref14) {
|
|
729
868
|
var libraryId, objectId, writeToken, uploadId, jobId, path;
|
|
730
869
|
return _regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
731
|
-
while (1)
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
870
|
+
while (1) {
|
|
871
|
+
switch (_context9.prev = _context9.next) {
|
|
872
|
+
case 0:
|
|
873
|
+
libraryId = _ref14.libraryId, objectId = _ref14.objectId, writeToken = _ref14.writeToken, uploadId = _ref14.uploadId, jobId = _ref14.jobId;
|
|
874
|
+
ValidateParameters({
|
|
875
|
+
libraryId: libraryId,
|
|
876
|
+
objectId: objectId
|
|
877
|
+
});
|
|
878
|
+
ValidateWriteToken(writeToken);
|
|
879
|
+
path = UrlJoin("q", writeToken, "file_jobs", uploadId, "uploads", jobId);
|
|
880
|
+
_context9.t0 = this.utils;
|
|
881
|
+
_context9.t1 = this.HttpClient;
|
|
882
|
+
_context9.next = 8;
|
|
883
|
+
return this.authClient.AuthorizationHeader({
|
|
884
|
+
libraryId: libraryId,
|
|
885
|
+
objectId: objectId,
|
|
886
|
+
update: true
|
|
887
|
+
});
|
|
888
|
+
|
|
889
|
+
case 8:
|
|
890
|
+
_context9.t2 = _context9.sent;
|
|
891
|
+
_context9.t3 = path;
|
|
892
|
+
_context9.t4 = {
|
|
893
|
+
headers: _context9.t2,
|
|
894
|
+
method: "GET",
|
|
895
|
+
path: _context9.t3,
|
|
896
|
+
failover: false
|
|
897
|
+
};
|
|
898
|
+
_context9.t5 = _context9.t1.Request.call(_context9.t1, _context9.t4);
|
|
899
|
+
return _context9.abrupt("return", _context9.t0.ResponseToJson.call(_context9.t0, _context9.t5));
|
|
900
|
+
|
|
901
|
+
case 13:
|
|
902
|
+
case "end":
|
|
903
|
+
return _context9.stop();
|
|
904
|
+
}
|
|
762
905
|
}
|
|
763
906
|
}, _callee9, this);
|
|
764
907
|
}));
|
|
908
|
+
|
|
765
909
|
return function (_x10) {
|
|
766
910
|
return _ref15.apply(this, arguments);
|
|
767
911
|
};
|
|
768
912
|
}();
|
|
913
|
+
|
|
769
914
|
exports.UploadFileData = /*#__PURE__*/function () {
|
|
770
915
|
var _ref17 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(_ref16) {
|
|
771
916
|
var libraryId, objectId, writeToken, uploadId, jobId, fileData, path;
|
|
772
917
|
return _regeneratorRuntime.wrap(function _callee10$(_context10) {
|
|
773
|
-
while (1)
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
918
|
+
while (1) {
|
|
919
|
+
switch (_context10.prev = _context10.next) {
|
|
920
|
+
case 0:
|
|
921
|
+
libraryId = _ref16.libraryId, objectId = _ref16.objectId, writeToken = _ref16.writeToken, uploadId = _ref16.uploadId, jobId = _ref16.jobId, fileData = _ref16.fileData;
|
|
922
|
+
ValidateParameters({
|
|
923
|
+
libraryId: libraryId,
|
|
924
|
+
objectId: objectId
|
|
925
|
+
});
|
|
926
|
+
ValidateWriteToken(writeToken);
|
|
927
|
+
path = UrlJoin("q", writeToken, "file_jobs", uploadId, jobId);
|
|
928
|
+
_context10.t0 = this.utils;
|
|
929
|
+
_context10.t1 = this.HttpClient;
|
|
930
|
+
_context10.t2 = path;
|
|
931
|
+
_context10.t3 = fileData;
|
|
932
|
+
_context10.t4 = _objectSpread;
|
|
933
|
+
_context10.t5 = {
|
|
934
|
+
"Content-type": "application/octet-stream"
|
|
935
|
+
};
|
|
936
|
+
_context10.next = 12;
|
|
937
|
+
return this.authClient.AuthorizationHeader({
|
|
938
|
+
libraryId: libraryId,
|
|
939
|
+
objectId: objectId,
|
|
940
|
+
update: true
|
|
941
|
+
});
|
|
942
|
+
|
|
943
|
+
case 12:
|
|
944
|
+
_context10.t6 = _context10.sent;
|
|
945
|
+
_context10.t7 = (0, _context10.t4)(_context10.t5, _context10.t6);
|
|
946
|
+
_context10.t8 = {
|
|
947
|
+
method: "POST",
|
|
948
|
+
path: _context10.t2,
|
|
949
|
+
body: _context10.t3,
|
|
950
|
+
bodyType: "BINARY",
|
|
951
|
+
headers: _context10.t7,
|
|
952
|
+
failover: false
|
|
953
|
+
};
|
|
954
|
+
_context10.t9 = _context10.t1.Request.call(_context10.t1, _context10.t8);
|
|
955
|
+
_context10.next = 18;
|
|
956
|
+
return _context10.t0.ResponseToJson.call(_context10.t0, _context10.t9);
|
|
957
|
+
|
|
958
|
+
case 18:
|
|
959
|
+
case "end":
|
|
960
|
+
return _context10.stop();
|
|
961
|
+
}
|
|
813
962
|
}
|
|
814
963
|
}, _callee10, this);
|
|
815
964
|
}));
|
|
965
|
+
|
|
816
966
|
return function (_x11) {
|
|
817
967
|
return _ref17.apply(this, arguments);
|
|
818
968
|
};
|
|
819
969
|
}();
|
|
970
|
+
|
|
820
971
|
exports.FinalizeUploadJob = /*#__PURE__*/function () {
|
|
821
972
|
var _ref19 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(_ref18) {
|
|
822
973
|
var libraryId, objectId, writeToken, path;
|
|
823
974
|
return _regeneratorRuntime.wrap(function _callee11$(_context11) {
|
|
824
|
-
while (1)
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
975
|
+
while (1) {
|
|
976
|
+
switch (_context11.prev = _context11.next) {
|
|
977
|
+
case 0:
|
|
978
|
+
libraryId = _ref18.libraryId, objectId = _ref18.objectId, writeToken = _ref18.writeToken;
|
|
979
|
+
ValidateParameters({
|
|
980
|
+
libraryId: libraryId,
|
|
981
|
+
objectId: objectId
|
|
982
|
+
});
|
|
983
|
+
ValidateWriteToken(writeToken);
|
|
984
|
+
this.Log("Finalizing upload job: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
985
|
+
path = UrlJoin("q", writeToken, "files");
|
|
986
|
+
_context11.t0 = this.HttpClient;
|
|
987
|
+
_context11.t1 = path;
|
|
988
|
+
_context11.next = 9;
|
|
989
|
+
return this.authClient.AuthorizationHeader({
|
|
990
|
+
libraryId: libraryId,
|
|
991
|
+
objectId: objectId,
|
|
992
|
+
update: true
|
|
993
|
+
});
|
|
994
|
+
|
|
995
|
+
case 9:
|
|
996
|
+
_context11.t2 = _context11.sent;
|
|
997
|
+
_context11.t3 = {
|
|
998
|
+
method: "POST",
|
|
999
|
+
path: _context11.t1,
|
|
1000
|
+
bodyType: "BINARY",
|
|
1001
|
+
headers: _context11.t2,
|
|
1002
|
+
failover: false
|
|
1003
|
+
};
|
|
1004
|
+
_context11.next = 13;
|
|
1005
|
+
return _context11.t0.Request.call(_context11.t0, _context11.t3);
|
|
1006
|
+
|
|
1007
|
+
case 13:
|
|
1008
|
+
case "end":
|
|
1009
|
+
return _context11.stop();
|
|
1010
|
+
}
|
|
856
1011
|
}
|
|
857
1012
|
}, _callee11, this);
|
|
858
1013
|
}));
|
|
1014
|
+
|
|
859
1015
|
return function (_x12) {
|
|
860
1016
|
return _ref19.apply(this, arguments);
|
|
861
1017
|
};
|
|
862
1018
|
}();
|
|
863
|
-
|
|
864
1019
|
/**
|
|
865
1020
|
* Create the specified directories on the specified object
|
|
866
1021
|
*
|
|
@@ -872,45 +1027,50 @@ exports.FinalizeUploadJob = /*#__PURE__*/function () {
|
|
|
872
1027
|
* @param {string} writeToken - Write token of the draft
|
|
873
1028
|
* @param {Array<string>} filePaths - List of file paths to create
|
|
874
1029
|
*/
|
|
1030
|
+
|
|
1031
|
+
|
|
875
1032
|
exports.CreateFileDirectories = /*#__PURE__*/function () {
|
|
876
1033
|
var _ref21 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee12(_ref20) {
|
|
877
1034
|
var libraryId, objectId, writeToken, filePaths, ops;
|
|
878
1035
|
return _regeneratorRuntime.wrap(function _callee12$(_context12) {
|
|
879
|
-
while (1)
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
1036
|
+
while (1) {
|
|
1037
|
+
switch (_context12.prev = _context12.next) {
|
|
1038
|
+
case 0:
|
|
1039
|
+
libraryId = _ref20.libraryId, objectId = _ref20.objectId, writeToken = _ref20.writeToken, filePaths = _ref20.filePaths;
|
|
1040
|
+
ValidateParameters({
|
|
1041
|
+
libraryId: libraryId,
|
|
1042
|
+
objectId: objectId
|
|
1043
|
+
});
|
|
1044
|
+
ValidateWriteToken(writeToken);
|
|
1045
|
+
this.Log("Creating Directories: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
1046
|
+
this.Log(filePaths);
|
|
1047
|
+
ops = filePaths.map(function (path) {
|
|
1048
|
+
return {
|
|
1049
|
+
op: "add",
|
|
1050
|
+
type: "directory",
|
|
1051
|
+
path: path
|
|
1052
|
+
};
|
|
1053
|
+
});
|
|
1054
|
+
_context12.next = 8;
|
|
1055
|
+
return this.CreateFileUploadJob({
|
|
1056
|
+
libraryId: libraryId,
|
|
1057
|
+
objectId: objectId,
|
|
1058
|
+
writeToken: writeToken,
|
|
1059
|
+
ops: ops
|
|
1060
|
+
});
|
|
1061
|
+
|
|
1062
|
+
case 8:
|
|
1063
|
+
case "end":
|
|
1064
|
+
return _context12.stop();
|
|
1065
|
+
}
|
|
906
1066
|
}
|
|
907
1067
|
}, _callee12, this);
|
|
908
1068
|
}));
|
|
1069
|
+
|
|
909
1070
|
return function (_x13) {
|
|
910
1071
|
return _ref21.apply(this, arguments);
|
|
911
1072
|
};
|
|
912
1073
|
}();
|
|
913
|
-
|
|
914
1074
|
/**
|
|
915
1075
|
* Delete the specified list of files/directories
|
|
916
1076
|
*
|
|
@@ -922,44 +1082,49 @@ exports.CreateFileDirectories = /*#__PURE__*/function () {
|
|
|
922
1082
|
* @param {string} writeToken - Write token of the draft
|
|
923
1083
|
* @param {Array<string>} filePaths - List of file paths to delete
|
|
924
1084
|
*/
|
|
1085
|
+
|
|
1086
|
+
|
|
925
1087
|
exports.DeleteFiles = /*#__PURE__*/function () {
|
|
926
1088
|
var _ref23 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13(_ref22) {
|
|
927
1089
|
var libraryId, objectId, writeToken, filePaths, ops;
|
|
928
1090
|
return _regeneratorRuntime.wrap(function _callee13$(_context13) {
|
|
929
|
-
while (1)
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
1091
|
+
while (1) {
|
|
1092
|
+
switch (_context13.prev = _context13.next) {
|
|
1093
|
+
case 0:
|
|
1094
|
+
libraryId = _ref22.libraryId, objectId = _ref22.objectId, writeToken = _ref22.writeToken, filePaths = _ref22.filePaths;
|
|
1095
|
+
ValidateParameters({
|
|
1096
|
+
libraryId: libraryId,
|
|
1097
|
+
objectId: objectId
|
|
1098
|
+
});
|
|
1099
|
+
ValidateWriteToken(writeToken);
|
|
1100
|
+
this.Log("Deleting Files: ".concat(libraryId, " ").concat(objectId, " ").concat(writeToken));
|
|
1101
|
+
this.Log(filePaths);
|
|
1102
|
+
ops = filePaths.map(function (path) {
|
|
1103
|
+
return {
|
|
1104
|
+
op: "del",
|
|
1105
|
+
path: path
|
|
1106
|
+
};
|
|
1107
|
+
});
|
|
1108
|
+
_context13.next = 8;
|
|
1109
|
+
return this.CreateFileUploadJob({
|
|
1110
|
+
libraryId: libraryId,
|
|
1111
|
+
objectId: objectId,
|
|
1112
|
+
writeToken: writeToken,
|
|
1113
|
+
ops: ops
|
|
1114
|
+
});
|
|
1115
|
+
|
|
1116
|
+
case 8:
|
|
1117
|
+
case "end":
|
|
1118
|
+
return _context13.stop();
|
|
1119
|
+
}
|
|
955
1120
|
}
|
|
956
1121
|
}, _callee13, this);
|
|
957
1122
|
}));
|
|
1123
|
+
|
|
958
1124
|
return function (_x14) {
|
|
959
1125
|
return _ref23.apply(this, arguments);
|
|
960
1126
|
};
|
|
961
1127
|
}();
|
|
962
|
-
|
|
963
1128
|
/**
|
|
964
1129
|
* Download a file from a content object
|
|
965
1130
|
*
|
|
@@ -984,187 +1149,218 @@ exports.DeleteFiles = /*#__PURE__*/function () {
|
|
|
984
1149
|
*
|
|
985
1150
|
* @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, file data in the requested format otherwise
|
|
986
1151
|
*/
|
|
1152
|
+
|
|
1153
|
+
|
|
987
1154
|
exports.DownloadFile = /*#__PURE__*/function () {
|
|
988
1155
|
var _ref25 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee14(_ref24) {
|
|
989
1156
|
var libraryId,
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1157
|
+
objectId,
|
|
1158
|
+
versionHash,
|
|
1159
|
+
writeToken,
|
|
1160
|
+
filePath,
|
|
1161
|
+
_ref24$format,
|
|
1162
|
+
format,
|
|
1163
|
+
_ref24$chunked,
|
|
1164
|
+
chunked,
|
|
1165
|
+
chunkSize,
|
|
1166
|
+
_ref24$clientSideDecr,
|
|
1167
|
+
clientSideDecryption,
|
|
1168
|
+
callback,
|
|
1169
|
+
fileInfo,
|
|
1170
|
+
encrypted,
|
|
1171
|
+
encryption,
|
|
1172
|
+
path,
|
|
1173
|
+
headers,
|
|
1174
|
+
ownerCapKey,
|
|
1175
|
+
ownerCap,
|
|
1176
|
+
bytesTotal,
|
|
1177
|
+
_args14 = arguments;
|
|
1178
|
+
|
|
1011
1179
|
return _regeneratorRuntime.wrap(function _callee14$(_context14) {
|
|
1012
|
-
while (1)
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
objectId: objectId,
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1180
|
+
while (1) {
|
|
1181
|
+
switch (_context14.prev = _context14.next) {
|
|
1182
|
+
case 0:
|
|
1183
|
+
libraryId = _ref24.libraryId, objectId = _ref24.objectId, versionHash = _ref24.versionHash, writeToken = _ref24.writeToken, filePath = _ref24.filePath, _ref24$format = _ref24.format, format = _ref24$format === void 0 ? "arrayBuffer" : _ref24$format, _ref24$chunked = _ref24.chunked, chunked = _ref24$chunked === void 0 ? false : _ref24$chunked, chunkSize = _ref24.chunkSize, _ref24$clientSideDecr = _ref24.clientSideDecryption, clientSideDecryption = _ref24$clientSideDecr === void 0 ? false : _ref24$clientSideDecr, callback = _ref24.callback;
|
|
1184
|
+
ValidateParameters({
|
|
1185
|
+
libraryId: libraryId,
|
|
1186
|
+
objectId: objectId,
|
|
1187
|
+
versionHash: versionHash
|
|
1188
|
+
});
|
|
1189
|
+
ValidatePresence("filePath", filePath);
|
|
1190
|
+
|
|
1191
|
+
if (versionHash) {
|
|
1192
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
1193
|
+
}
|
|
1194
|
+
|
|
1195
|
+
_context14.next = 6;
|
|
1196
|
+
return this.ContentObjectMetadata({
|
|
1197
|
+
libraryId: libraryId,
|
|
1198
|
+
objectId: objectId,
|
|
1199
|
+
versionHash: versionHash,
|
|
1200
|
+
writeToken: writeToken,
|
|
1201
|
+
metadataSubtree: UrlJoin("files", filePath)
|
|
1202
|
+
});
|
|
1203
|
+
|
|
1204
|
+
case 6:
|
|
1205
|
+
fileInfo = _context14.sent;
|
|
1206
|
+
encrypted = fileInfo && fileInfo["."].encryption && fileInfo["."].encryption.scheme === "cgck";
|
|
1207
|
+
encryption = encrypted ? "cgck" : undefined;
|
|
1208
|
+
path = encrypted && !clientSideDecryption ? UrlJoin("q", writeToken || versionHash || objectId, "rep", "files_download", filePath) : UrlJoin("q", writeToken || versionHash || objectId, "files", filePath);
|
|
1209
|
+
_context14.next = 12;
|
|
1210
|
+
return this.authClient.AuthorizationHeader({
|
|
1211
|
+
libraryId: libraryId,
|
|
1212
|
+
objectId: objectId,
|
|
1213
|
+
versionHash: versionHash,
|
|
1214
|
+
encryption: encryption
|
|
1215
|
+
});
|
|
1216
|
+
|
|
1217
|
+
case 12:
|
|
1218
|
+
headers = _context14.sent;
|
|
1219
|
+
headers.Accept = "*/*"; // If not owner, indicate re-encryption
|
|
1220
|
+
|
|
1221
|
+
ownerCapKey = "eluv.caps.iusr".concat(this.utils.AddressToHash(this.signer.address));
|
|
1222
|
+
_context14.next = 17;
|
|
1223
|
+
return this.ContentObjectMetadata({
|
|
1224
|
+
libraryId: libraryId,
|
|
1225
|
+
objectId: objectId,
|
|
1226
|
+
metadataSubtree: ownerCapKey
|
|
1227
|
+
});
|
|
1228
|
+
|
|
1229
|
+
case 17:
|
|
1230
|
+
ownerCap = _context14.sent;
|
|
1231
|
+
_context14.t1 = encrypted;
|
|
1232
|
+
|
|
1233
|
+
if (!_context14.t1) {
|
|
1234
|
+
_context14.next = 26;
|
|
1235
|
+
break;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
_context14.t2 = this.utils;
|
|
1239
|
+
_context14.t3 = this.signer.address;
|
|
1240
|
+
_context14.next = 24;
|
|
1241
|
+
return this.ContentObjectOwner({
|
|
1242
|
+
objectId: objectId
|
|
1243
|
+
});
|
|
1244
|
+
|
|
1245
|
+
case 24:
|
|
1246
|
+
_context14.t4 = _context14.sent;
|
|
1247
|
+
_context14.t1 = !_context14.t2.EqualAddress.call(_context14.t2, _context14.t3, _context14.t4);
|
|
1248
|
+
|
|
1249
|
+
case 26:
|
|
1250
|
+
_context14.t0 = _context14.t1;
|
|
1251
|
+
|
|
1252
|
+
if (!_context14.t0) {
|
|
1253
|
+
_context14.next = 29;
|
|
1254
|
+
break;
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
_context14.t0 = !ownerCap;
|
|
1258
|
+
|
|
1259
|
+
case 29:
|
|
1260
|
+
if (!_context14.t0) {
|
|
1261
|
+
_context14.next = 31;
|
|
1262
|
+
break;
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
|
|
1266
|
+
|
|
1267
|
+
case 31:
|
|
1268
|
+
// If using server side decryption, specify in header
|
|
1269
|
+
if (encrypted && !clientSideDecryption) {
|
|
1270
|
+
headers["X-Content-Fabric-Decryption-Mode"] = "decrypt"; // rep/files_download endpoint doesn't currently support Range header
|
|
1271
|
+
|
|
1272
|
+
chunkSize = Number.MAX_SAFE_INTEGER;
|
|
1273
|
+
}
|
|
1274
|
+
|
|
1275
|
+
bytesTotal = fileInfo["."].size;
|
|
1276
|
+
|
|
1277
|
+
if (!(encrypted && clientSideDecryption)) {
|
|
1278
|
+
_context14.next = 51;
|
|
1279
|
+
break;
|
|
1280
|
+
}
|
|
1281
|
+
|
|
1282
|
+
_context14.t5 = this;
|
|
1283
|
+
_context14.next = 37;
|
|
1284
|
+
return this.EncryptionConk({
|
|
1285
|
+
libraryId: libraryId,
|
|
1286
|
+
objectId: objectId,
|
|
1287
|
+
versionHash: versionHash,
|
|
1288
|
+
download: true
|
|
1289
|
+
});
|
|
1290
|
+
|
|
1291
|
+
case 37:
|
|
1292
|
+
_context14.t6 = _context14.sent;
|
|
1293
|
+
_context14.t7 = path;
|
|
1294
|
+
_context14.t8 = bytesTotal;
|
|
1295
|
+
_context14.t9 = headers;
|
|
1296
|
+
_context14.t10 = callback;
|
|
1297
|
+
_context14.t11 = format;
|
|
1298
|
+
_context14.t12 = clientSideDecryption;
|
|
1299
|
+
_context14.t13 = chunked;
|
|
1300
|
+
_context14.t14 = {
|
|
1301
|
+
conk: _context14.t6,
|
|
1302
|
+
downloadPath: _context14.t7,
|
|
1303
|
+
bytesTotal: _context14.t8,
|
|
1304
|
+
headers: _context14.t9,
|
|
1305
|
+
callback: _context14.t10,
|
|
1306
|
+
format: _context14.t11,
|
|
1307
|
+
clientSideDecryption: _context14.t12,
|
|
1308
|
+
chunked: _context14.t13
|
|
1309
|
+
};
|
|
1310
|
+
_context14.next = 48;
|
|
1311
|
+
return _context14.t5.DownloadEncrypted.call(_context14.t5, _context14.t14);
|
|
1312
|
+
|
|
1313
|
+
case 48:
|
|
1314
|
+
return _context14.abrupt("return", _context14.sent);
|
|
1315
|
+
|
|
1316
|
+
case 51:
|
|
1317
|
+
if (!chunkSize) {
|
|
1318
|
+
chunkSize = 10000000;
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
_context14.prev = 52;
|
|
1322
|
+
_context14.next = 55;
|
|
1323
|
+
return this.Download({
|
|
1324
|
+
downloadPath: path,
|
|
1325
|
+
bytesTotal: bytesTotal,
|
|
1326
|
+
headers: headers,
|
|
1327
|
+
callback: callback,
|
|
1328
|
+
format: format,
|
|
1329
|
+
chunked: chunked,
|
|
1330
|
+
chunkSize: chunkSize
|
|
1331
|
+
});
|
|
1332
|
+
|
|
1333
|
+
case 55:
|
|
1334
|
+
return _context14.abrupt("return", _context14.sent);
|
|
1335
|
+
|
|
1336
|
+
case 58:
|
|
1337
|
+
_context14.prev = 58;
|
|
1338
|
+
_context14.t15 = _context14["catch"](52);
|
|
1339
|
+
|
|
1340
|
+
if (!(encrypted && !clientSideDecryption)) {
|
|
1341
|
+
_context14.next = 62;
|
|
1342
|
+
break;
|
|
1343
|
+
}
|
|
1344
|
+
|
|
1345
|
+
return _context14.abrupt("return", this.DownloadFile(_objectSpread(_objectSpread({}, _args14[0]), {}, {
|
|
1346
|
+
clientSideDecryption: true
|
|
1347
|
+
})));
|
|
1348
|
+
|
|
1349
|
+
case 62:
|
|
1350
|
+
throw _context14.t15;
|
|
1351
|
+
|
|
1352
|
+
case 63:
|
|
1353
|
+
case "end":
|
|
1354
|
+
return _context14.stop();
|
|
1355
|
+
}
|
|
1160
1356
|
}
|
|
1161
1357
|
}, _callee14, this, [[52, 58]]);
|
|
1162
1358
|
}));
|
|
1359
|
+
|
|
1163
1360
|
return function (_x15) {
|
|
1164
1361
|
return _ref25.apply(this, arguments);
|
|
1165
1362
|
};
|
|
1166
1363
|
}();
|
|
1167
|
-
|
|
1168
1364
|
/* Parts */
|
|
1169
1365
|
|
|
1170
1366
|
/**
|
|
@@ -1179,56 +1375,65 @@ exports.DownloadFile = /*#__PURE__*/function () {
|
|
|
1179
1375
|
*
|
|
1180
1376
|
* @returns {Promise<Object>} - Response containing list of parts of the object
|
|
1181
1377
|
*/
|
|
1378
|
+
|
|
1379
|
+
|
|
1182
1380
|
exports.ContentParts = /*#__PURE__*/function () {
|
|
1183
1381
|
var _ref27 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee15(_ref26) {
|
|
1184
1382
|
var libraryId, objectId, versionHash, path, response;
|
|
1185
1383
|
return _regeneratorRuntime.wrap(function _callee15$(_context15) {
|
|
1186
|
-
while (1)
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1384
|
+
while (1) {
|
|
1385
|
+
switch (_context15.prev = _context15.next) {
|
|
1386
|
+
case 0:
|
|
1387
|
+
libraryId = _ref26.libraryId, objectId = _ref26.objectId, versionHash = _ref26.versionHash;
|
|
1388
|
+
ValidateParameters({
|
|
1389
|
+
libraryId: libraryId,
|
|
1390
|
+
objectId: objectId,
|
|
1391
|
+
versionHash: versionHash
|
|
1392
|
+
});
|
|
1393
|
+
this.Log("Retrieving parts: ".concat(libraryId, " ").concat(objectId || versionHash));
|
|
1394
|
+
|
|
1395
|
+
if (versionHash) {
|
|
1396
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
1397
|
+
}
|
|
1398
|
+
|
|
1399
|
+
path = UrlJoin("q", versionHash || objectId, "parts");
|
|
1400
|
+
_context15.t0 = this.utils;
|
|
1401
|
+
_context15.t1 = this.HttpClient;
|
|
1402
|
+
_context15.next = 9;
|
|
1403
|
+
return this.authClient.AuthorizationHeader({
|
|
1404
|
+
libraryId: libraryId,
|
|
1405
|
+
objectId: objectId,
|
|
1406
|
+
versionHash: versionHash
|
|
1407
|
+
});
|
|
1408
|
+
|
|
1409
|
+
case 9:
|
|
1410
|
+
_context15.t2 = _context15.sent;
|
|
1411
|
+
_context15.t3 = path;
|
|
1412
|
+
_context15.t4 = {
|
|
1413
|
+
headers: _context15.t2,
|
|
1414
|
+
method: "GET",
|
|
1415
|
+
path: _context15.t3
|
|
1416
|
+
};
|
|
1417
|
+
_context15.t5 = _context15.t1.Request.call(_context15.t1, _context15.t4);
|
|
1418
|
+
_context15.next = 15;
|
|
1419
|
+
return _context15.t0.ResponseToJson.call(_context15.t0, _context15.t5);
|
|
1420
|
+
|
|
1421
|
+
case 15:
|
|
1422
|
+
response = _context15.sent;
|
|
1423
|
+
return _context15.abrupt("return", response.parts);
|
|
1424
|
+
|
|
1425
|
+
case 17:
|
|
1426
|
+
case "end":
|
|
1427
|
+
return _context15.stop();
|
|
1428
|
+
}
|
|
1224
1429
|
}
|
|
1225
1430
|
}, _callee15, this);
|
|
1226
1431
|
}));
|
|
1432
|
+
|
|
1227
1433
|
return function (_x16) {
|
|
1228
1434
|
return _ref27.apply(this, arguments);
|
|
1229
1435
|
};
|
|
1230
1436
|
}();
|
|
1231
|
-
|
|
1232
1437
|
/**
|
|
1233
1438
|
* Get information on a specific part
|
|
1234
1439
|
*
|
|
@@ -1242,56 +1447,65 @@ exports.ContentParts = /*#__PURE__*/function () {
|
|
|
1242
1447
|
*
|
|
1243
1448
|
* @returns {Promise<Object>} - Response containing information about the specified part
|
|
1244
1449
|
*/
|
|
1450
|
+
|
|
1451
|
+
|
|
1245
1452
|
exports.ContentPart = /*#__PURE__*/function () {
|
|
1246
1453
|
var _ref29 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee16(_ref28) {
|
|
1247
1454
|
var libraryId, objectId, versionHash, partHash, path;
|
|
1248
1455
|
return _regeneratorRuntime.wrap(function _callee16$(_context16) {
|
|
1249
|
-
while (1)
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1456
|
+
while (1) {
|
|
1457
|
+
switch (_context16.prev = _context16.next) {
|
|
1458
|
+
case 0:
|
|
1459
|
+
libraryId = _ref28.libraryId, objectId = _ref28.objectId, versionHash = _ref28.versionHash, partHash = _ref28.partHash;
|
|
1460
|
+
ValidateParameters({
|
|
1461
|
+
libraryId: libraryId,
|
|
1462
|
+
objectId: objectId,
|
|
1463
|
+
versionHash: versionHash
|
|
1464
|
+
});
|
|
1465
|
+
ValidatePartHash(partHash);
|
|
1466
|
+
this.Log("Retrieving part: ".concat(libraryId, " ").concat(objectId || versionHash, " ").concat(partHash));
|
|
1467
|
+
|
|
1468
|
+
if (versionHash) {
|
|
1469
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
path = UrlJoin("q", versionHash || objectId, "parts", partHash);
|
|
1473
|
+
_context16.t0 = this.utils;
|
|
1474
|
+
_context16.t1 = this.HttpClient;
|
|
1475
|
+
_context16.next = 10;
|
|
1476
|
+
return this.authClient.AuthorizationHeader({
|
|
1477
|
+
libraryId: libraryId,
|
|
1478
|
+
objectId: objectId,
|
|
1479
|
+
versionHash: versionHash
|
|
1480
|
+
});
|
|
1481
|
+
|
|
1482
|
+
case 10:
|
|
1483
|
+
_context16.t2 = _context16.sent;
|
|
1484
|
+
_context16.t3 = path;
|
|
1485
|
+
_context16.t4 = {
|
|
1486
|
+
headers: _context16.t2,
|
|
1487
|
+
method: "GET",
|
|
1488
|
+
path: _context16.t3
|
|
1489
|
+
};
|
|
1490
|
+
_context16.t5 = _context16.t1.Request.call(_context16.t1, _context16.t4);
|
|
1491
|
+
_context16.next = 16;
|
|
1492
|
+
return _context16.t0.ResponseToJson.call(_context16.t0, _context16.t5);
|
|
1493
|
+
|
|
1494
|
+
case 16:
|
|
1495
|
+
return _context16.abrupt("return", _context16.sent);
|
|
1496
|
+
|
|
1497
|
+
case 17:
|
|
1498
|
+
case "end":
|
|
1499
|
+
return _context16.stop();
|
|
1500
|
+
}
|
|
1287
1501
|
}
|
|
1288
1502
|
}, _callee16, this);
|
|
1289
1503
|
}));
|
|
1504
|
+
|
|
1290
1505
|
return function (_x17) {
|
|
1291
1506
|
return _ref29.apply(this, arguments);
|
|
1292
1507
|
};
|
|
1293
1508
|
}();
|
|
1294
|
-
|
|
1295
1509
|
/**
|
|
1296
1510
|
* Download a part from a content object. The fromByte and range parameters can be used to specify a
|
|
1297
1511
|
* specific section of the part to download.
|
|
@@ -1316,340 +1530,418 @@ exports.ContentPart = /*#__PURE__*/function () {
|
|
|
1316
1530
|
*
|
|
1317
1531
|
* @returns {Promise<ArrayBuffer> | undefined} - No return if chunked is specified, part data in the requested format otherwise
|
|
1318
1532
|
*/
|
|
1533
|
+
|
|
1534
|
+
|
|
1319
1535
|
exports.DownloadPart = /*#__PURE__*/function () {
|
|
1320
1536
|
var _ref31 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee17(_ref30) {
|
|
1321
1537
|
var libraryId, objectId, versionHash, writeToken, partHash, _ref30$format, format, _ref30$chunked, chunked, _ref30$chunkSize, chunkSize, callback, encrypted, encryption, path, headers, bytesTotal;
|
|
1538
|
+
|
|
1322
1539
|
return _regeneratorRuntime.wrap(function _callee17$(_context17) {
|
|
1323
|
-
while (1)
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
_context17.next =
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1540
|
+
while (1) {
|
|
1541
|
+
switch (_context17.prev = _context17.next) {
|
|
1542
|
+
case 0:
|
|
1543
|
+
libraryId = _ref30.libraryId, objectId = _ref30.objectId, versionHash = _ref30.versionHash, writeToken = _ref30.writeToken, partHash = _ref30.partHash, _ref30$format = _ref30.format, format = _ref30$format === void 0 ? "arrayBuffer" : _ref30$format, _ref30$chunked = _ref30.chunked, chunked = _ref30$chunked === void 0 ? false : _ref30$chunked, _ref30$chunkSize = _ref30.chunkSize, chunkSize = _ref30$chunkSize === void 0 ? 10000000 : _ref30$chunkSize, callback = _ref30.callback;
|
|
1544
|
+
ValidateParameters({
|
|
1545
|
+
libraryId: libraryId,
|
|
1546
|
+
objectId: objectId,
|
|
1547
|
+
versionHash: versionHash
|
|
1548
|
+
});
|
|
1549
|
+
ValidatePartHash(partHash);
|
|
1550
|
+
|
|
1551
|
+
if (versionHash) {
|
|
1552
|
+
objectId = this.utils.DecodeVersionHash(versionHash).objectId;
|
|
1553
|
+
}
|
|
1554
|
+
|
|
1555
|
+
encrypted = partHash.startsWith("hqpe");
|
|
1556
|
+
encryption = encrypted ? "cgck" : undefined;
|
|
1557
|
+
path = UrlJoin("q", writeToken || versionHash || objectId, "data", partHash);
|
|
1558
|
+
_context17.next = 9;
|
|
1559
|
+
return this.authClient.AuthorizationHeader({
|
|
1560
|
+
libraryId: libraryId,
|
|
1561
|
+
objectId: objectId,
|
|
1562
|
+
versionHash: versionHash,
|
|
1563
|
+
encryption: encryption
|
|
1564
|
+
});
|
|
1565
|
+
|
|
1566
|
+
case 9:
|
|
1567
|
+
headers = _context17.sent;
|
|
1568
|
+
_context17.next = 12;
|
|
1569
|
+
return this.ContentPart({
|
|
1570
|
+
libraryId: libraryId,
|
|
1571
|
+
objectId: objectId,
|
|
1572
|
+
versionHash: versionHash,
|
|
1573
|
+
partHash: partHash
|
|
1574
|
+
});
|
|
1575
|
+
|
|
1576
|
+
case 12:
|
|
1577
|
+
bytesTotal = _context17.sent.part.size;
|
|
1578
|
+
|
|
1579
|
+
if (!encrypted) {
|
|
1580
|
+
_context17.next = 37;
|
|
1581
|
+
break;
|
|
1582
|
+
}
|
|
1583
|
+
|
|
1584
|
+
_context17.t0 = this.utils;
|
|
1585
|
+
_context17.t1 = this.signer.address;
|
|
1586
|
+
_context17.next = 18;
|
|
1587
|
+
return this.ContentObjectOwner({
|
|
1588
|
+
objectId: objectId
|
|
1589
|
+
});
|
|
1590
|
+
|
|
1591
|
+
case 18:
|
|
1592
|
+
_context17.t2 = _context17.sent;
|
|
1593
|
+
|
|
1594
|
+
if (_context17.t0.EqualAddress.call(_context17.t0, _context17.t1, _context17.t2)) {
|
|
1595
|
+
_context17.next = 21;
|
|
1596
|
+
break;
|
|
1597
|
+
}
|
|
1598
|
+
|
|
1599
|
+
headers["X-Content-Fabric-Decryption-Mode"] = "reencrypt";
|
|
1600
|
+
|
|
1601
|
+
case 21:
|
|
1602
|
+
_context17.t3 = this;
|
|
1603
|
+
_context17.next = 24;
|
|
1604
|
+
return this.EncryptionConk({
|
|
1605
|
+
libraryId: libraryId,
|
|
1606
|
+
objectId: objectId,
|
|
1607
|
+
download: true
|
|
1608
|
+
});
|
|
1609
|
+
|
|
1610
|
+
case 24:
|
|
1611
|
+
_context17.t4 = _context17.sent;
|
|
1612
|
+
_context17.t5 = path;
|
|
1613
|
+
_context17.t6 = bytesTotal;
|
|
1614
|
+
_context17.t7 = headers;
|
|
1615
|
+
_context17.t8 = callback;
|
|
1616
|
+
_context17.t9 = format;
|
|
1617
|
+
_context17.t10 = chunked;
|
|
1618
|
+
_context17.t11 = {
|
|
1619
|
+
conk: _context17.t4,
|
|
1620
|
+
downloadPath: _context17.t5,
|
|
1621
|
+
bytesTotal: _context17.t6,
|
|
1622
|
+
headers: _context17.t7,
|
|
1623
|
+
callback: _context17.t8,
|
|
1624
|
+
format: _context17.t9,
|
|
1625
|
+
chunked: _context17.t10
|
|
1626
|
+
};
|
|
1627
|
+
_context17.next = 34;
|
|
1628
|
+
return _context17.t3.DownloadEncrypted.call(_context17.t3, _context17.t11);
|
|
1629
|
+
|
|
1630
|
+
case 34:
|
|
1631
|
+
return _context17.abrupt("return", _context17.sent);
|
|
1632
|
+
|
|
1633
|
+
case 37:
|
|
1634
|
+
_context17.next = 39;
|
|
1635
|
+
return this.Download({
|
|
1636
|
+
downloadPath: path,
|
|
1637
|
+
bytesTotal: bytesTotal,
|
|
1638
|
+
headers: headers,
|
|
1639
|
+
callback: callback,
|
|
1640
|
+
format: format,
|
|
1641
|
+
chunked: chunked,
|
|
1642
|
+
chunkSize: chunkSize
|
|
1643
|
+
});
|
|
1644
|
+
|
|
1645
|
+
case 39:
|
|
1646
|
+
return _context17.abrupt("return", _context17.sent);
|
|
1647
|
+
|
|
1648
|
+
case 40:
|
|
1649
|
+
case "end":
|
|
1650
|
+
return _context17.stop();
|
|
1651
|
+
}
|
|
1418
1652
|
}
|
|
1419
1653
|
}, _callee17, this);
|
|
1420
1654
|
}));
|
|
1655
|
+
|
|
1421
1656
|
return function (_x18) {
|
|
1422
1657
|
return _ref31.apply(this, arguments);
|
|
1423
1658
|
};
|
|
1424
1659
|
}();
|
|
1660
|
+
|
|
1425
1661
|
exports.Download = /*#__PURE__*/function () {
|
|
1426
1662
|
var _ref33 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee18(_ref32) {
|
|
1427
1663
|
var downloadPath, headers, bytesTotal, _ref32$chunked, chunked, _ref32$chunkSize, chunkSize, callback, _ref32$format, format, outputChunks, bytesFinished, totalChunks, i, response;
|
|
1664
|
+
|
|
1428
1665
|
return _regeneratorRuntime.wrap(function _callee18$(_context18) {
|
|
1429
|
-
while (1)
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
_context18.next = 3;
|
|
1434
|
-
break;
|
|
1435
|
-
}
|
|
1436
|
-
throw Error("No callback specified for chunked download");
|
|
1437
|
-
case 3:
|
|
1438
|
-
if (!chunked) {
|
|
1439
|
-
outputChunks = [];
|
|
1440
|
-
}
|
|
1666
|
+
while (1) {
|
|
1667
|
+
switch (_context18.prev = _context18.next) {
|
|
1668
|
+
case 0:
|
|
1669
|
+
downloadPath = _ref32.downloadPath, headers = _ref32.headers, bytesTotal = _ref32.bytesTotal, _ref32$chunked = _ref32.chunked, chunked = _ref32$chunked === void 0 ? false : _ref32$chunked, _ref32$chunkSize = _ref32.chunkSize, chunkSize = _ref32$chunkSize === void 0 ? 2000000 : _ref32$chunkSize, callback = _ref32.callback, _ref32$format = _ref32.format, format = _ref32$format === void 0 ? "arrayBuffer" : _ref32$format;
|
|
1441
1670
|
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
_context18.t3 = _context18.sent;
|
|
1472
|
-
_context18.t4 = {
|
|
1473
|
-
bytesFinished: _context18.t1,
|
|
1474
|
-
bytesTotal: _context18.t2,
|
|
1475
|
-
chunk: _context18.t3
|
|
1476
|
-
};
|
|
1477
|
-
(0, _context18.t0)(_context18.t4);
|
|
1478
|
-
_context18.next = 32;
|
|
1479
|
-
break;
|
|
1480
|
-
case 24:
|
|
1481
|
-
_context18.t5 = outputChunks;
|
|
1482
|
-
_context18.t6 = Buffer;
|
|
1483
|
-
_context18.next = 28;
|
|
1484
|
-
return response.arrayBuffer();
|
|
1485
|
-
case 28:
|
|
1486
|
-
_context18.t7 = _context18.sent;
|
|
1487
|
-
_context18.t8 = _context18.t6.from.call(_context18.t6, _context18.t7);
|
|
1488
|
-
_context18.t5.push.call(_context18.t5, _context18.t8);
|
|
1489
|
-
if (callback) {
|
|
1490
|
-
callback({
|
|
1491
|
-
bytesFinished: bytesFinished,
|
|
1492
|
-
bytesTotal: bytesTotal
|
|
1671
|
+
if (!(chunked && !callback)) {
|
|
1672
|
+
_context18.next = 3;
|
|
1673
|
+
break;
|
|
1674
|
+
}
|
|
1675
|
+
|
|
1676
|
+
throw Error("No callback specified for chunked download");
|
|
1677
|
+
|
|
1678
|
+
case 3:
|
|
1679
|
+
if (!chunked) {
|
|
1680
|
+
outputChunks = [];
|
|
1681
|
+
} // Download file in chunks
|
|
1682
|
+
|
|
1683
|
+
|
|
1684
|
+
bytesFinished = 0;
|
|
1685
|
+
totalChunks = Math.ceil(bytesTotal / chunkSize);
|
|
1686
|
+
i = 0;
|
|
1687
|
+
|
|
1688
|
+
case 7:
|
|
1689
|
+
if (!(i < totalChunks)) {
|
|
1690
|
+
_context18.next = 35;
|
|
1691
|
+
break;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
|
|
1695
|
+
_context18.next = 11;
|
|
1696
|
+
return this.HttpClient.Request({
|
|
1697
|
+
path: downloadPath,
|
|
1698
|
+
headers: headers,
|
|
1699
|
+
method: "GET"
|
|
1493
1700
|
});
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1701
|
+
|
|
1702
|
+
case 11:
|
|
1703
|
+
response = _context18.sent;
|
|
1704
|
+
bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
|
|
1705
|
+
|
|
1706
|
+
if (!chunked) {
|
|
1707
|
+
_context18.next = 24;
|
|
1708
|
+
break;
|
|
1709
|
+
}
|
|
1710
|
+
|
|
1711
|
+
_context18.t0 = callback;
|
|
1712
|
+
_context18.t1 = bytesFinished;
|
|
1713
|
+
_context18.t2 = bytesTotal;
|
|
1714
|
+
_context18.next = 19;
|
|
1715
|
+
return this.utils.ResponseToFormat(format, response);
|
|
1716
|
+
|
|
1717
|
+
case 19:
|
|
1718
|
+
_context18.t3 = _context18.sent;
|
|
1719
|
+
_context18.t4 = {
|
|
1720
|
+
bytesFinished: _context18.t1,
|
|
1721
|
+
bytesTotal: _context18.t2,
|
|
1722
|
+
chunk: _context18.t3
|
|
1723
|
+
};
|
|
1724
|
+
(0, _context18.t0)(_context18.t4);
|
|
1725
|
+
_context18.next = 32;
|
|
1502
1726
|
break;
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1727
|
+
|
|
1728
|
+
case 24:
|
|
1729
|
+
_context18.t5 = outputChunks;
|
|
1730
|
+
_context18.t6 = Buffer;
|
|
1731
|
+
_context18.next = 28;
|
|
1732
|
+
return response.arrayBuffer();
|
|
1733
|
+
|
|
1734
|
+
case 28:
|
|
1735
|
+
_context18.t7 = _context18.sent;
|
|
1736
|
+
_context18.t8 = _context18.t6.from.call(_context18.t6, _context18.t7);
|
|
1737
|
+
|
|
1738
|
+
_context18.t5.push.call(_context18.t5, _context18.t8);
|
|
1739
|
+
|
|
1740
|
+
if (callback) {
|
|
1741
|
+
callback({
|
|
1742
|
+
bytesFinished: bytesFinished,
|
|
1743
|
+
bytesTotal: bytesTotal
|
|
1744
|
+
});
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
case 32:
|
|
1748
|
+
i++;
|
|
1749
|
+
_context18.next = 7;
|
|
1750
|
+
break;
|
|
1751
|
+
|
|
1752
|
+
case 35:
|
|
1753
|
+
if (chunked) {
|
|
1754
|
+
_context18.next = 39;
|
|
1755
|
+
break;
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1758
|
+
_context18.next = 38;
|
|
1759
|
+
return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
|
|
1760
|
+
|
|
1761
|
+
case 38:
|
|
1762
|
+
return _context18.abrupt("return", _context18.sent);
|
|
1763
|
+
|
|
1764
|
+
case 39:
|
|
1765
|
+
case "end":
|
|
1766
|
+
return _context18.stop();
|
|
1767
|
+
}
|
|
1511
1768
|
}
|
|
1512
1769
|
}, _callee18, this);
|
|
1513
1770
|
}));
|
|
1771
|
+
|
|
1514
1772
|
return function (_x19) {
|
|
1515
1773
|
return _ref33.apply(this, arguments);
|
|
1516
1774
|
};
|
|
1517
1775
|
}();
|
|
1776
|
+
|
|
1518
1777
|
exports.DownloadEncrypted = /*#__PURE__*/function () {
|
|
1519
1778
|
var _ref35 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee20(_ref34) {
|
|
1520
1779
|
var _this2 = this;
|
|
1780
|
+
|
|
1521
1781
|
var conk, downloadPath, bytesTotal, headers, callback, _ref34$format, format, _ref34$chunked, chunked, isReencryption, chunkSize, bytesFinished, outputChunks, stream, totalChunks, i, response;
|
|
1782
|
+
|
|
1522
1783
|
return _regeneratorRuntime.wrap(function _callee20$(_context20) {
|
|
1523
|
-
while (1)
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1784
|
+
while (1) {
|
|
1785
|
+
switch (_context20.prev = _context20.next) {
|
|
1786
|
+
case 0:
|
|
1787
|
+
conk = _ref34.conk, downloadPath = _ref34.downloadPath, bytesTotal = _ref34.bytesTotal, headers = _ref34.headers, callback = _ref34.callback, _ref34$format = _ref34.format, format = _ref34$format === void 0 ? "arrayBuffer" : _ref34$format, _ref34$chunked = _ref34.chunked, chunked = _ref34$chunked === void 0 ? false : _ref34$chunked;
|
|
1788
|
+
|
|
1789
|
+
if (!(chunked && !callback)) {
|
|
1790
|
+
_context20.next = 3;
|
|
1791
|
+
break;
|
|
1792
|
+
}
|
|
1793
|
+
|
|
1794
|
+
throw Error("No callback specified for chunked download");
|
|
1795
|
+
|
|
1796
|
+
case 3:
|
|
1797
|
+
// Must align chunk size with encryption block size
|
|
1798
|
+
isReencryption = conk.public_key.startsWith("ktpk");
|
|
1799
|
+
chunkSize = this.Crypto.EncryptedBlockSize(1000000, isReencryption);
|
|
1800
|
+
bytesFinished = 0;
|
|
1801
|
+
format = format.toLowerCase();
|
|
1802
|
+
outputChunks = []; // Set up decryption stream
|
|
1803
|
+
|
|
1804
|
+
_context20.next = 10;
|
|
1805
|
+
return this.Crypto.OpenDecryptionStream(conk);
|
|
1806
|
+
|
|
1807
|
+
case 10:
|
|
1808
|
+
stream = _context20.sent;
|
|
1809
|
+
stream.on("data", /*#__PURE__*/function () {
|
|
1810
|
+
var _ref36 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee19(chunk) {
|
|
1811
|
+
var arrayBuffer;
|
|
1812
|
+
return _regeneratorRuntime.wrap(function _callee19$(_context19) {
|
|
1813
|
+
while (1) {
|
|
1814
|
+
switch (_context19.prev = _context19.next) {
|
|
1815
|
+
case 0:
|
|
1816
|
+
if (!chunked) {
|
|
1817
|
+
_context19.next = 13;
|
|
1818
|
+
break;
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
if (!(format !== "buffer")) {
|
|
1822
|
+
_context19.next = 10;
|
|
1823
|
+
break;
|
|
1824
|
+
}
|
|
1825
|
+
|
|
1826
|
+
arrayBuffer = chunk.buffer.slice(chunk.byteOffset, chunk.byteOffset + chunk.byteLength);
|
|
1827
|
+
|
|
1828
|
+
if (!(format === "arraybuffer")) {
|
|
1829
|
+
_context19.next = 7;
|
|
1830
|
+
break;
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
chunk = arrayBuffer;
|
|
1834
|
+
_context19.next = 10;
|
|
1835
|
+
break;
|
|
1836
|
+
|
|
1837
|
+
case 7:
|
|
1838
|
+
_context19.next = 9;
|
|
1839
|
+
return _this2.utils.ResponseToFormat(format, new Response(arrayBuffer));
|
|
1840
|
+
|
|
1841
|
+
case 9:
|
|
1842
|
+
chunk = _context19.sent;
|
|
1843
|
+
|
|
1844
|
+
case 10:
|
|
1845
|
+
callback({
|
|
1846
|
+
bytesFinished: bytesFinished,
|
|
1847
|
+
bytesTotal: bytesTotal,
|
|
1848
|
+
chunk: chunk
|
|
1849
|
+
});
|
|
1850
|
+
_context19.next = 15;
|
|
1851
|
+
break;
|
|
1852
|
+
|
|
1853
|
+
case 13:
|
|
1854
|
+
if (callback) {
|
|
1855
|
+
callback({
|
|
1856
|
+
bytesFinished: bytesFinished,
|
|
1857
|
+
bytesTotal: bytesTotal
|
|
1858
|
+
});
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1861
|
+
outputChunks.push(chunk);
|
|
1862
|
+
|
|
1863
|
+
case 15:
|
|
1864
|
+
case "end":
|
|
1865
|
+
return _context19.stop();
|
|
1583
1866
|
}
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
path: downloadPath
|
|
1608
|
-
});
|
|
1609
|
-
case 18:
|
|
1610
|
-
response = _context20.sent;
|
|
1611
|
-
bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
|
|
1612
|
-
_context20.t0 = stream;
|
|
1613
|
-
_context20.t1 = Uint8Array;
|
|
1614
|
-
_context20.next = 24;
|
|
1615
|
-
return response.arrayBuffer();
|
|
1616
|
-
case 24:
|
|
1617
|
-
_context20.t2 = _context20.sent;
|
|
1618
|
-
_context20.t3 = new _context20.t1(_context20.t2);
|
|
1619
|
-
_context20.t0.write.call(_context20.t0, _context20.t3);
|
|
1620
|
-
case 27:
|
|
1621
|
-
i++;
|
|
1622
|
-
_context20.next = 14;
|
|
1623
|
-
break;
|
|
1624
|
-
case 30:
|
|
1625
|
-
// Wait for decryption to complete
|
|
1626
|
-
stream.end();
|
|
1627
|
-
_context20.next = 33;
|
|
1628
|
-
return new Promise(function (resolve) {
|
|
1629
|
-
return stream.on("finish", function () {
|
|
1630
|
-
resolve();
|
|
1867
|
+
}
|
|
1868
|
+
}, _callee19);
|
|
1869
|
+
}));
|
|
1870
|
+
|
|
1871
|
+
return function (_x21) {
|
|
1872
|
+
return _ref36.apply(this, arguments);
|
|
1873
|
+
};
|
|
1874
|
+
}());
|
|
1875
|
+
totalChunks = Math.ceil(bytesTotal / chunkSize);
|
|
1876
|
+
i = 0;
|
|
1877
|
+
|
|
1878
|
+
case 14:
|
|
1879
|
+
if (!(i < totalChunks)) {
|
|
1880
|
+
_context20.next = 30;
|
|
1881
|
+
break;
|
|
1882
|
+
}
|
|
1883
|
+
|
|
1884
|
+
headers["Range"] = "bytes=".concat(bytesFinished, "-").concat(bytesFinished + chunkSize - 1);
|
|
1885
|
+
_context20.next = 18;
|
|
1886
|
+
return this.HttpClient.Request({
|
|
1887
|
+
headers: headers,
|
|
1888
|
+
method: "GET",
|
|
1889
|
+
path: downloadPath
|
|
1631
1890
|
});
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1891
|
+
|
|
1892
|
+
case 18:
|
|
1893
|
+
response = _context20.sent;
|
|
1894
|
+
bytesFinished = Math.min(bytesFinished + chunkSize, bytesTotal);
|
|
1895
|
+
_context20.t0 = stream;
|
|
1896
|
+
_context20.t1 = Uint8Array;
|
|
1897
|
+
_context20.next = 24;
|
|
1898
|
+
return response.arrayBuffer();
|
|
1899
|
+
|
|
1900
|
+
case 24:
|
|
1901
|
+
_context20.t2 = _context20.sent;
|
|
1902
|
+
_context20.t3 = new _context20.t1(_context20.t2);
|
|
1903
|
+
|
|
1904
|
+
_context20.t0.write.call(_context20.t0, _context20.t3);
|
|
1905
|
+
|
|
1906
|
+
case 27:
|
|
1907
|
+
i++;
|
|
1908
|
+
_context20.next = 14;
|
|
1636
1909
|
break;
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1910
|
+
|
|
1911
|
+
case 30:
|
|
1912
|
+
// Wait for decryption to complete
|
|
1913
|
+
stream.end();
|
|
1914
|
+
_context20.next = 33;
|
|
1915
|
+
return new Promise(function (resolve) {
|
|
1916
|
+
return stream.on("finish", function () {
|
|
1917
|
+
resolve();
|
|
1918
|
+
});
|
|
1919
|
+
});
|
|
1920
|
+
|
|
1921
|
+
case 33:
|
|
1922
|
+
if (chunked) {
|
|
1923
|
+
_context20.next = 37;
|
|
1924
|
+
break;
|
|
1925
|
+
}
|
|
1926
|
+
|
|
1927
|
+
_context20.next = 36;
|
|
1928
|
+
return this.utils.ResponseToFormat(format, new Response(Buffer.concat(outputChunks)));
|
|
1929
|
+
|
|
1930
|
+
case 36:
|
|
1931
|
+
return _context20.abrupt("return", _context20.sent);
|
|
1932
|
+
|
|
1933
|
+
case 37:
|
|
1934
|
+
case "end":
|
|
1935
|
+
return _context20.stop();
|
|
1936
|
+
}
|
|
1645
1937
|
}
|
|
1646
1938
|
}, _callee20, this);
|
|
1647
1939
|
}));
|
|
1940
|
+
|
|
1648
1941
|
return function (_x20) {
|
|
1649
1942
|
return _ref35.apply(this, arguments);
|
|
1650
1943
|
};
|
|
1651
1944
|
}();
|
|
1652
|
-
|
|
1653
1945
|
/**
|
|
1654
1946
|
* Create a part upload draft
|
|
1655
1947
|
*
|
|
@@ -1663,56 +1955,63 @@ exports.DownloadEncrypted = /*#__PURE__*/function () {
|
|
|
1663
1955
|
*
|
|
1664
1956
|
* @returns {Promise<string>} - The part write token for the part draft
|
|
1665
1957
|
*/
|
|
1958
|
+
|
|
1959
|
+
|
|
1666
1960
|
exports.CreatePart = /*#__PURE__*/function () {
|
|
1667
1961
|
var _ref38 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee21(_ref37) {
|
|
1668
1962
|
var libraryId, objectId, writeToken, encryption, path, openResponse;
|
|
1669
1963
|
return _regeneratorRuntime.wrap(function _callee21$(_context21) {
|
|
1670
|
-
while (1)
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1964
|
+
while (1) {
|
|
1965
|
+
switch (_context21.prev = _context21.next) {
|
|
1966
|
+
case 0:
|
|
1967
|
+
libraryId = _ref37.libraryId, objectId = _ref37.objectId, writeToken = _ref37.writeToken, encryption = _ref37.encryption;
|
|
1968
|
+
ValidateParameters({
|
|
1969
|
+
libraryId: libraryId,
|
|
1970
|
+
objectId: objectId
|
|
1971
|
+
});
|
|
1972
|
+
ValidateWriteToken(writeToken);
|
|
1973
|
+
path = UrlJoin("q", writeToken, "parts");
|
|
1974
|
+
_context21.t0 = this.utils;
|
|
1975
|
+
_context21.t1 = this.HttpClient;
|
|
1976
|
+
_context21.next = 8;
|
|
1977
|
+
return this.authClient.AuthorizationHeader({
|
|
1978
|
+
libraryId: libraryId,
|
|
1979
|
+
objectId: objectId,
|
|
1980
|
+
update: true,
|
|
1981
|
+
encryption: encryption
|
|
1982
|
+
});
|
|
1983
|
+
|
|
1984
|
+
case 8:
|
|
1985
|
+
_context21.t2 = _context21.sent;
|
|
1986
|
+
_context21.t3 = path;
|
|
1987
|
+
_context21.t4 = {
|
|
1988
|
+
headers: _context21.t2,
|
|
1989
|
+
method: "POST",
|
|
1990
|
+
path: _context21.t3,
|
|
1991
|
+
bodyType: "BINARY",
|
|
1992
|
+
body: "",
|
|
1993
|
+
failover: false
|
|
1994
|
+
};
|
|
1995
|
+
_context21.t5 = _context21.t1.Request.call(_context21.t1, _context21.t4);
|
|
1996
|
+
_context21.next = 14;
|
|
1997
|
+
return _context21.t0.ResponseToJson.call(_context21.t0, _context21.t5);
|
|
1998
|
+
|
|
1999
|
+
case 14:
|
|
2000
|
+
openResponse = _context21.sent;
|
|
2001
|
+
return _context21.abrupt("return", openResponse.part.write_token);
|
|
2002
|
+
|
|
2003
|
+
case 16:
|
|
2004
|
+
case "end":
|
|
2005
|
+
return _context21.stop();
|
|
2006
|
+
}
|
|
1708
2007
|
}
|
|
1709
2008
|
}, _callee21, this);
|
|
1710
2009
|
}));
|
|
2010
|
+
|
|
1711
2011
|
return function (_x22) {
|
|
1712
2012
|
return _ref38.apply(this, arguments);
|
|
1713
2013
|
};
|
|
1714
2014
|
}();
|
|
1715
|
-
|
|
1716
2015
|
/**
|
|
1717
2016
|
* Upload data to an open part draft
|
|
1718
2017
|
*
|
|
@@ -1728,71 +2027,82 @@ exports.CreatePart = /*#__PURE__*/function () {
|
|
|
1728
2027
|
*
|
|
1729
2028
|
* @returns {Promise<string>} - The part write token for the part draft
|
|
1730
2029
|
*/
|
|
2030
|
+
|
|
2031
|
+
|
|
1731
2032
|
exports.UploadPartChunk = /*#__PURE__*/function () {
|
|
1732
2033
|
var _ref40 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee22(_ref39) {
|
|
1733
2034
|
var libraryId, objectId, writeToken, partWriteToken, chunk, encryption, conk, path;
|
|
1734
2035
|
return _regeneratorRuntime.wrap(function _callee22$(_context22) {
|
|
1735
|
-
while (1)
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
2036
|
+
while (1) {
|
|
2037
|
+
switch (_context22.prev = _context22.next) {
|
|
2038
|
+
case 0:
|
|
2039
|
+
libraryId = _ref39.libraryId, objectId = _ref39.objectId, writeToken = _ref39.writeToken, partWriteToken = _ref39.partWriteToken, chunk = _ref39.chunk, encryption = _ref39.encryption;
|
|
2040
|
+
ValidateParameters({
|
|
2041
|
+
libraryId: libraryId,
|
|
2042
|
+
objectId: objectId
|
|
2043
|
+
});
|
|
2044
|
+
ValidateWriteToken(writeToken);
|
|
2045
|
+
|
|
2046
|
+
if (!(encryption && encryption !== "none")) {
|
|
2047
|
+
_context22.next = 10;
|
|
2048
|
+
break;
|
|
2049
|
+
}
|
|
2050
|
+
|
|
2051
|
+
_context22.next = 6;
|
|
2052
|
+
return this.EncryptionConk({
|
|
2053
|
+
libraryId: libraryId,
|
|
2054
|
+
objectId: objectId,
|
|
2055
|
+
writeToken: writeToken
|
|
2056
|
+
});
|
|
2057
|
+
|
|
2058
|
+
case 6:
|
|
2059
|
+
conk = _context22.sent;
|
|
2060
|
+
_context22.next = 9;
|
|
2061
|
+
return this.Crypto.Encrypt(conk, chunk);
|
|
2062
|
+
|
|
2063
|
+
case 9:
|
|
2064
|
+
chunk = _context22.sent;
|
|
2065
|
+
|
|
2066
|
+
case 10:
|
|
2067
|
+
path = UrlJoin("q", writeToken, "parts");
|
|
2068
|
+
_context22.t0 = this.utils;
|
|
2069
|
+
_context22.t1 = this.HttpClient;
|
|
2070
|
+
_context22.next = 15;
|
|
2071
|
+
return this.authClient.AuthorizationHeader({
|
|
2072
|
+
libraryId: libraryId,
|
|
2073
|
+
objectId: objectId,
|
|
2074
|
+
update: true,
|
|
2075
|
+
encryption: encryption
|
|
2076
|
+
});
|
|
2077
|
+
|
|
2078
|
+
case 15:
|
|
2079
|
+
_context22.t2 = _context22.sent;
|
|
2080
|
+
_context22.t3 = UrlJoin(path, partWriteToken);
|
|
2081
|
+
_context22.t4 = chunk;
|
|
2082
|
+
_context22.t5 = {
|
|
2083
|
+
headers: _context22.t2,
|
|
2084
|
+
method: "POST",
|
|
2085
|
+
path: _context22.t3,
|
|
2086
|
+
body: _context22.t4,
|
|
2087
|
+
bodyType: "BINARY",
|
|
2088
|
+
failover: false
|
|
2089
|
+
};
|
|
2090
|
+
_context22.t6 = _context22.t1.Request.call(_context22.t1, _context22.t5);
|
|
2091
|
+
_context22.next = 22;
|
|
2092
|
+
return _context22.t0.ResponseToJson.call(_context22.t0, _context22.t6);
|
|
2093
|
+
|
|
2094
|
+
case 22:
|
|
2095
|
+
case "end":
|
|
2096
|
+
return _context22.stop();
|
|
2097
|
+
}
|
|
1788
2098
|
}
|
|
1789
2099
|
}, _callee22, this);
|
|
1790
2100
|
}));
|
|
2101
|
+
|
|
1791
2102
|
return function (_x23) {
|
|
1792
2103
|
return _ref40.apply(this, arguments);
|
|
1793
2104
|
};
|
|
1794
2105
|
}();
|
|
1795
|
-
|
|
1796
2106
|
/**
|
|
1797
2107
|
* Finalize an open part draft
|
|
1798
2108
|
*
|
|
@@ -1807,58 +2117,66 @@ exports.UploadPartChunk = /*#__PURE__*/function () {
|
|
|
1807
2117
|
*
|
|
1808
2118
|
* @returns {Promise<object>} - The finalize response for the new part
|
|
1809
2119
|
*/
|
|
2120
|
+
|
|
2121
|
+
|
|
1810
2122
|
exports.FinalizePart = /*#__PURE__*/function () {
|
|
1811
2123
|
var _ref42 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee23(_ref41) {
|
|
1812
2124
|
var libraryId, objectId, writeToken, partWriteToken, encryption, path;
|
|
1813
2125
|
return _regeneratorRuntime.wrap(function _callee23$(_context23) {
|
|
1814
|
-
while (1)
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
2126
|
+
while (1) {
|
|
2127
|
+
switch (_context23.prev = _context23.next) {
|
|
2128
|
+
case 0:
|
|
2129
|
+
libraryId = _ref41.libraryId, objectId = _ref41.objectId, writeToken = _ref41.writeToken, partWriteToken = _ref41.partWriteToken, encryption = _ref41.encryption;
|
|
2130
|
+
ValidateParameters({
|
|
2131
|
+
libraryId: libraryId,
|
|
2132
|
+
objectId: objectId
|
|
2133
|
+
});
|
|
2134
|
+
ValidateWriteToken(writeToken);
|
|
2135
|
+
path = UrlJoin("q", writeToken, "parts");
|
|
2136
|
+
_context23.t0 = this.utils;
|
|
2137
|
+
_context23.t1 = this.HttpClient;
|
|
2138
|
+
_context23.next = 8;
|
|
2139
|
+
return this.authClient.AuthorizationHeader({
|
|
2140
|
+
libraryId: libraryId,
|
|
2141
|
+
objectId: objectId,
|
|
2142
|
+
update: true,
|
|
2143
|
+
encryption: encryption
|
|
2144
|
+
});
|
|
2145
|
+
|
|
2146
|
+
case 8:
|
|
2147
|
+
_context23.t2 = _context23.sent;
|
|
2148
|
+
_context23.t3 = UrlJoin(path, partWriteToken);
|
|
2149
|
+
_context23.t4 = {
|
|
2150
|
+
headers: _context23.t2,
|
|
2151
|
+
method: "POST",
|
|
2152
|
+
path: _context23.t3,
|
|
2153
|
+
bodyType: "BINARY",
|
|
2154
|
+
body: "",
|
|
2155
|
+
failover: false
|
|
2156
|
+
};
|
|
2157
|
+
_context23.next = 13;
|
|
2158
|
+
return _context23.t1.Request.call(_context23.t1, _context23.t4);
|
|
2159
|
+
|
|
2160
|
+
case 13:
|
|
2161
|
+
_context23.t5 = _context23.sent;
|
|
2162
|
+
_context23.next = 16;
|
|
2163
|
+
return _context23.t0.ResponseToJson.call(_context23.t0, _context23.t5);
|
|
2164
|
+
|
|
2165
|
+
case 16:
|
|
2166
|
+
return _context23.abrupt("return", _context23.sent);
|
|
2167
|
+
|
|
2168
|
+
case 17:
|
|
2169
|
+
case "end":
|
|
2170
|
+
return _context23.stop();
|
|
2171
|
+
}
|
|
1854
2172
|
}
|
|
1855
2173
|
}, _callee23, this);
|
|
1856
2174
|
}));
|
|
2175
|
+
|
|
1857
2176
|
return function (_x24) {
|
|
1858
2177
|
return _ref42.apply(this, arguments);
|
|
1859
2178
|
};
|
|
1860
2179
|
}();
|
|
1861
|
-
|
|
1862
2180
|
/**
|
|
1863
2181
|
* Upload part to an object draft
|
|
1864
2182
|
*
|
|
@@ -1880,83 +2198,98 @@ exports.FinalizePart = /*#__PURE__*/function () {
|
|
|
1880
2198
|
*
|
|
1881
2199
|
* @returns {Promise<Object>} - Response containing information about the uploaded part
|
|
1882
2200
|
*/
|
|
2201
|
+
|
|
2202
|
+
|
|
1883
2203
|
exports.UploadPart = /*#__PURE__*/function () {
|
|
1884
2204
|
var _ref44 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee24(_ref43) {
|
|
1885
2205
|
var libraryId, objectId, writeToken, data, _ref43$encryption, encryption, _ref43$chunkSize, chunkSize, callback, partWriteToken, size, i, chunk;
|
|
2206
|
+
|
|
1886
2207
|
return _regeneratorRuntime.wrap(function _callee24$(_context24) {
|
|
1887
|
-
while (1)
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
ValidateWriteToken(writeToken);
|
|
1895
|
-
_context24.next = 5;
|
|
1896
|
-
return this.CreatePart({
|
|
1897
|
-
libraryId: libraryId,
|
|
1898
|
-
objectId: objectId,
|
|
1899
|
-
writeToken: writeToken,
|
|
1900
|
-
encryption: encryption
|
|
1901
|
-
});
|
|
1902
|
-
case 5:
|
|
1903
|
-
partWriteToken = _context24.sent;
|
|
1904
|
-
size = data.length || data.byteLength || data.size;
|
|
1905
|
-
if (callback) {
|
|
1906
|
-
callback({
|
|
1907
|
-
bytesFinished: 0,
|
|
1908
|
-
bytesTotal: size
|
|
2208
|
+
while (1) {
|
|
2209
|
+
switch (_context24.prev = _context24.next) {
|
|
2210
|
+
case 0:
|
|
2211
|
+
libraryId = _ref43.libraryId, objectId = _ref43.objectId, writeToken = _ref43.writeToken, data = _ref43.data, _ref43$encryption = _ref43.encryption, encryption = _ref43$encryption === void 0 ? "none" : _ref43$encryption, _ref43$chunkSize = _ref43.chunkSize, chunkSize = _ref43$chunkSize === void 0 ? 10000000 : _ref43$chunkSize, callback = _ref43.callback;
|
|
2212
|
+
ValidateParameters({
|
|
2213
|
+
libraryId: libraryId,
|
|
2214
|
+
objectId: objectId
|
|
1909
2215
|
});
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
2216
|
+
ValidateWriteToken(writeToken);
|
|
2217
|
+
_context24.next = 5;
|
|
2218
|
+
return this.CreatePart({
|
|
2219
|
+
libraryId: libraryId,
|
|
2220
|
+
objectId: objectId,
|
|
2221
|
+
writeToken: writeToken,
|
|
2222
|
+
encryption: encryption
|
|
2223
|
+
});
|
|
2224
|
+
|
|
2225
|
+
case 5:
|
|
2226
|
+
partWriteToken = _context24.sent;
|
|
2227
|
+
size = data.length || data.byteLength || data.size;
|
|
2228
|
+
|
|
2229
|
+
if (callback) {
|
|
2230
|
+
callback({
|
|
2231
|
+
bytesFinished: 0,
|
|
2232
|
+
bytesTotal: size
|
|
2233
|
+
});
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
i = 0;
|
|
2237
|
+
|
|
2238
|
+
case 9:
|
|
2239
|
+
if (!(i < size)) {
|
|
2240
|
+
_context24.next = 17;
|
|
2241
|
+
break;
|
|
2242
|
+
}
|
|
2243
|
+
|
|
2244
|
+
chunk = data.slice(i, i + chunkSize);
|
|
2245
|
+
_context24.next = 13;
|
|
2246
|
+
return this.UploadPartChunk({
|
|
2247
|
+
libraryId: libraryId,
|
|
2248
|
+
objectId: objectId,
|
|
2249
|
+
writeToken: writeToken,
|
|
2250
|
+
partWriteToken: partWriteToken,
|
|
2251
|
+
chunk: chunk,
|
|
2252
|
+
encryption: encryption
|
|
2253
|
+
});
|
|
2254
|
+
|
|
2255
|
+
case 13:
|
|
2256
|
+
if (callback) {
|
|
2257
|
+
callback({
|
|
2258
|
+
bytesFinished: Math.min(i + chunkSize, size),
|
|
2259
|
+
bytesTotal: size
|
|
2260
|
+
});
|
|
2261
|
+
}
|
|
2262
|
+
|
|
2263
|
+
case 14:
|
|
2264
|
+
i += chunkSize;
|
|
2265
|
+
_context24.next = 9;
|
|
1915
2266
|
break;
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
encryption: encryption
|
|
1926
|
-
});
|
|
1927
|
-
case 13:
|
|
1928
|
-
if (callback) {
|
|
1929
|
-
callback({
|
|
1930
|
-
bytesFinished: Math.min(i + chunkSize, size),
|
|
1931
|
-
bytesTotal: size
|
|
2267
|
+
|
|
2268
|
+
case 17:
|
|
2269
|
+
_context24.next = 19;
|
|
2270
|
+
return this.FinalizePart({
|
|
2271
|
+
libraryId: libraryId,
|
|
2272
|
+
objectId: objectId,
|
|
2273
|
+
writeToken: writeToken,
|
|
2274
|
+
partWriteToken: partWriteToken,
|
|
2275
|
+
encryption: encryption
|
|
1932
2276
|
});
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
libraryId: libraryId,
|
|
1942
|
-
objectId: objectId,
|
|
1943
|
-
writeToken: writeToken,
|
|
1944
|
-
partWriteToken: partWriteToken,
|
|
1945
|
-
encryption: encryption
|
|
1946
|
-
});
|
|
1947
|
-
case 19:
|
|
1948
|
-
return _context24.abrupt("return", _context24.sent);
|
|
1949
|
-
case 20:
|
|
1950
|
-
case "end":
|
|
1951
|
-
return _context24.stop();
|
|
2277
|
+
|
|
2278
|
+
case 19:
|
|
2279
|
+
return _context24.abrupt("return", _context24.sent);
|
|
2280
|
+
|
|
2281
|
+
case 20:
|
|
2282
|
+
case "end":
|
|
2283
|
+
return _context24.stop();
|
|
2284
|
+
}
|
|
1952
2285
|
}
|
|
1953
2286
|
}, _callee24, this);
|
|
1954
2287
|
}));
|
|
2288
|
+
|
|
1955
2289
|
return function (_x25) {
|
|
1956
2290
|
return _ref44.apply(this, arguments);
|
|
1957
2291
|
};
|
|
1958
2292
|
}();
|
|
1959
|
-
|
|
1960
2293
|
/**
|
|
1961
2294
|
* Delete the specified part from a content draft
|
|
1962
2295
|
*
|
|
@@ -1968,44 +2301,51 @@ exports.UploadPart = /*#__PURE__*/function () {
|
|
|
1968
2301
|
* @param {string} writeToken - Write token of the content object draft
|
|
1969
2302
|
* @param {string} partHash - Hash of the part to delete
|
|
1970
2303
|
*/
|
|
2304
|
+
|
|
2305
|
+
|
|
1971
2306
|
exports.DeletePart = /*#__PURE__*/function () {
|
|
1972
2307
|
var _ref46 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee25(_ref45) {
|
|
1973
2308
|
var libraryId, objectId, writeToken, partHash, path;
|
|
1974
2309
|
return _regeneratorRuntime.wrap(function _callee25$(_context25) {
|
|
1975
|
-
while (1)
|
|
1976
|
-
|
|
1977
|
-
|
|
1978
|
-
|
|
1979
|
-
|
|
1980
|
-
|
|
1981
|
-
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2310
|
+
while (1) {
|
|
2311
|
+
switch (_context25.prev = _context25.next) {
|
|
2312
|
+
case 0:
|
|
2313
|
+
libraryId = _ref45.libraryId, objectId = _ref45.objectId, writeToken = _ref45.writeToken, partHash = _ref45.partHash;
|
|
2314
|
+
ValidateParameters({
|
|
2315
|
+
libraryId: libraryId,
|
|
2316
|
+
objectId: objectId
|
|
2317
|
+
});
|
|
2318
|
+
ValidateWriteToken(writeToken);
|
|
2319
|
+
ValidatePartHash(partHash);
|
|
2320
|
+
path = UrlJoin("q", writeToken, "parts", partHash);
|
|
2321
|
+
_context25.t0 = this.HttpClient;
|
|
2322
|
+
_context25.next = 8;
|
|
2323
|
+
return this.authClient.AuthorizationHeader({
|
|
2324
|
+
libraryId: libraryId,
|
|
2325
|
+
objectId: objectId,
|
|
2326
|
+
update: true
|
|
2327
|
+
});
|
|
2328
|
+
|
|
2329
|
+
case 8:
|
|
2330
|
+
_context25.t1 = _context25.sent;
|
|
2331
|
+
_context25.t2 = path;
|
|
2332
|
+
_context25.t3 = {
|
|
2333
|
+
headers: _context25.t1,
|
|
2334
|
+
method: "DELETE",
|
|
2335
|
+
path: _context25.t2,
|
|
2336
|
+
failover: false
|
|
2337
|
+
};
|
|
2338
|
+
_context25.next = 13;
|
|
2339
|
+
return _context25.t0.Request.call(_context25.t0, _context25.t3);
|
|
2340
|
+
|
|
2341
|
+
case 13:
|
|
2342
|
+
case "end":
|
|
2343
|
+
return _context25.stop();
|
|
2344
|
+
}
|
|
2006
2345
|
}
|
|
2007
2346
|
}, _callee25, this);
|
|
2008
2347
|
}));
|
|
2348
|
+
|
|
2009
2349
|
return function (_x26) {
|
|
2010
2350
|
return _ref46.apply(this, arguments);
|
|
2011
2351
|
};
|