@aws-amplify/storage 4.4.3 → 4.4.4-in-app-messaging.48
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/CHANGELOG.md +35 -348
- package/dist/aws-amplify-storage.js +6523 -5062
- package/dist/aws-amplify-storage.js.map +1 -1
- package/dist/aws-amplify-storage.min.js +5 -5
- package/dist/aws-amplify-storage.min.js.map +1 -1
- package/lib/Storage.d.ts +3 -1
- package/lib/Storage.js +25 -21
- package/lib/Storage.js.map +1 -1
- package/lib/common/S3ClientUtils.d.ts +33 -0
- package/lib/common/S3ClientUtils.js +179 -0
- package/lib/common/S3ClientUtils.js.map +1 -0
- package/lib/common/StorageConstants.d.ts +4 -0
- package/lib/common/StorageConstants.js +10 -0
- package/lib/common/StorageConstants.js.map +1 -0
- package/lib/common/StorageErrorStrings.d.ts +5 -1
- package/lib/common/StorageErrorStrings.js +5 -0
- package/lib/common/StorageErrorStrings.js.map +1 -1
- package/lib/common/StorageUtils.d.ts +4 -0
- package/lib/common/StorageUtils.js +41 -0
- package/lib/common/StorageUtils.js.map +1 -0
- package/lib/providers/AWSS3Provider.d.ts +9 -6
- package/lib/providers/AWSS3Provider.js +197 -149
- package/lib/providers/AWSS3Provider.js.map +1 -1
- package/lib/providers/AWSS3ProviderManagedUpload.d.ts +3 -10
- package/lib/providers/AWSS3ProviderManagedUpload.js +41 -109
- package/lib/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib/providers/AWSS3UploadTask.d.ts +107 -0
- package/lib/providers/AWSS3UploadTask.js +610 -0
- package/lib/providers/AWSS3UploadTask.js.map +1 -0
- package/lib/providers/axios-http-handler.d.ts +5 -1
- package/lib/providers/axios-http-handler.js +28 -5
- package/lib/providers/axios-http-handler.js.map +1 -1
- package/lib/types/AWSS3Provider.d.ts +24 -4
- package/lib/types/Provider.d.ts +7 -1
- package/lib/types/Storage.d.ts +8 -8
- package/lib-esm/Storage.d.ts +3 -1
- package/lib-esm/Storage.js +25 -21
- package/lib-esm/Storage.js.map +1 -1
- package/lib-esm/common/S3ClientUtils.d.ts +33 -0
- package/lib-esm/common/S3ClientUtils.js +177 -0
- package/lib-esm/common/S3ClientUtils.js.map +1 -0
- package/lib-esm/common/StorageConstants.d.ts +4 -0
- package/lib-esm/common/StorageConstants.js +8 -0
- package/lib-esm/common/StorageConstants.js.map +1 -0
- package/lib-esm/common/StorageErrorStrings.d.ts +5 -1
- package/lib-esm/common/StorageErrorStrings.js +5 -0
- package/lib-esm/common/StorageErrorStrings.js.map +1 -1
- package/lib-esm/common/StorageUtils.d.ts +4 -0
- package/lib-esm/common/StorageUtils.js +39 -0
- package/lib-esm/common/StorageUtils.js.map +1 -0
- package/lib-esm/providers/AWSS3Provider.d.ts +9 -6
- package/lib-esm/providers/AWSS3Provider.js +192 -144
- package/lib-esm/providers/AWSS3Provider.js.map +1 -1
- package/lib-esm/providers/AWSS3ProviderManagedUpload.d.ts +3 -10
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js +44 -112
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib-esm/providers/AWSS3UploadTask.d.ts +107 -0
- package/lib-esm/providers/AWSS3UploadTask.js +605 -0
- package/lib-esm/providers/AWSS3UploadTask.js.map +1 -0
- package/lib-esm/providers/axios-http-handler.d.ts +5 -1
- package/lib-esm/providers/axios-http-handler.js +28 -5
- package/lib-esm/providers/axios-http-handler.js.map +1 -1
- package/lib-esm/types/AWSS3Provider.d.ts +24 -4
- package/lib-esm/types/Provider.d.ts +7 -1
- package/lib-esm/types/Storage.d.ts +8 -8
- package/package.json +3 -3
- package/src/Storage.ts +85 -27
- package/src/common/S3ClientUtils.ts +168 -0
- package/src/common/StorageConstants.ts +10 -0
- package/src/common/StorageErrorStrings.ts +5 -0
- package/src/common/StorageUtils.ts +51 -0
- package/src/providers/AWSS3Provider.ts +251 -88
- package/src/providers/AWSS3ProviderManagedUpload.ts +346 -397
- package/src/providers/AWSS3UploadTask.ts +543 -0
- package/src/providers/axios-http-handler.ts +221 -186
- package/src/types/AWSS3Provider.ts +48 -7
- package/src/types/Provider.ts +18 -3
- package/src/types/Storage.ts +9 -9
package/lib/Storage.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StorageCopySource, StorageCopyDestination, StorageGetConfig, StorageProvider, StoragePutConfig, StorageRemoveConfig, StorageListConfig, StorageCopyConfig, StorageGetOutput, StoragePutOutput, StorageRemoveOutput, StorageListOutput, StorageCopyOutput } from './types';
|
|
1
|
+
import { StorageCopySource, StorageCopyDestination, StorageGetConfig, StorageProvider, StoragePutConfig, StorageRemoveConfig, StorageListConfig, StorageCopyConfig, StorageGetOutput, StoragePutOutput, StorageRemoveOutput, StorageListOutput, StorageCopyOutput, UploadTask } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Provide storage methods to use AWS S3
|
|
4
4
|
*/
|
|
@@ -48,12 +48,14 @@ export declare class Storage {
|
|
|
48
48
|
configure(config?: any): any;
|
|
49
49
|
private getCancellableTokenSource;
|
|
50
50
|
private updateRequestToBeCancellable;
|
|
51
|
+
private isUploadTask;
|
|
51
52
|
/**
|
|
52
53
|
* Cancels an inflight request
|
|
53
54
|
*
|
|
54
55
|
* @param request - The request to cancel
|
|
55
56
|
* @param [message] - A message to include in the cancelation exception
|
|
56
57
|
*/
|
|
58
|
+
cancel(request: UploadTask, message?: string): Promise<boolean>;
|
|
57
59
|
cancel(request: Promise<any>, message?: string): void;
|
|
58
60
|
/**
|
|
59
61
|
* Copies a file from src to dest.
|
package/lib/Storage.js
CHANGED
|
@@ -45,6 +45,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
45
45
|
var core_1 = require("@aws-amplify/core");
|
|
46
46
|
var providers_1 = require("./providers");
|
|
47
47
|
var axios_1 = __importDefault(require("axios"));
|
|
48
|
+
var AWSS3UploadTask_1 = require("./providers/AWSS3UploadTask");
|
|
48
49
|
var logger = new core_1.ConsoleLogger('StorageClass');
|
|
49
50
|
var DEFAULT_PROVIDER = 'AWSS3';
|
|
50
51
|
/**
|
|
@@ -125,8 +126,12 @@ var Storage = /** @class */ (function () {
|
|
|
125
126
|
'SSECustomerKeyMD5',
|
|
126
127
|
'SSEKMSKeyId',
|
|
127
128
|
];
|
|
128
|
-
var isInStorageArrayKeys = function (k) {
|
|
129
|
-
|
|
129
|
+
var isInStorageArrayKeys = function (k) {
|
|
130
|
+
return storageArrayKeys.some(function (x) { return x === k; });
|
|
131
|
+
};
|
|
132
|
+
var checkConfigKeysFromArray = function (k) {
|
|
133
|
+
return k.find(function (k) { return isInStorageArrayKeys(k); });
|
|
134
|
+
};
|
|
130
135
|
if (storageKeysFromConfig &&
|
|
131
136
|
checkConfigKeysFromArray(storageKeysFromConfig) &&
|
|
132
137
|
!amplifyConfig.Storage[DEFAULT_PROVIDER]) {
|
|
@@ -159,13 +164,15 @@ var Storage = /** @class */ (function () {
|
|
|
159
164
|
Storage.prototype.updateRequestToBeCancellable = function (request, cancelTokenSource) {
|
|
160
165
|
this._cancelTokenSourceMap.set(request, cancelTokenSource);
|
|
161
166
|
};
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
*/
|
|
167
|
+
Storage.prototype.isUploadTask = function (x) {
|
|
168
|
+
return (typeof x !== 'undefined' &&
|
|
169
|
+
typeof x['pause'] === 'function' &&
|
|
170
|
+
typeof x['resume'] === 'function');
|
|
171
|
+
};
|
|
168
172
|
Storage.prototype.cancel = function (request, message) {
|
|
173
|
+
if (request instanceof AWSS3UploadTask_1.AWSS3UploadTask) {
|
|
174
|
+
return request._cancel();
|
|
175
|
+
}
|
|
169
176
|
var cancelTokenSource = this._cancelTokenSourceMap.get(request);
|
|
170
177
|
if (cancelTokenSource) {
|
|
171
178
|
cancelTokenSource.cancel(message);
|
|
@@ -175,8 +182,7 @@ var Storage = /** @class */ (function () {
|
|
|
175
182
|
}
|
|
176
183
|
};
|
|
177
184
|
Storage.prototype.copy = function (src, dest, config) {
|
|
178
|
-
var
|
|
179
|
-
var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;
|
|
185
|
+
var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;
|
|
180
186
|
var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });
|
|
181
187
|
if (prov === undefined) {
|
|
182
188
|
logger.debug('No plugin found with providerName', provider);
|
|
@@ -191,8 +197,7 @@ var Storage = /** @class */ (function () {
|
|
|
191
197
|
return responsePromise;
|
|
192
198
|
};
|
|
193
199
|
Storage.prototype.get = function (key, config) {
|
|
194
|
-
var
|
|
195
|
-
var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;
|
|
200
|
+
var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;
|
|
196
201
|
var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });
|
|
197
202
|
if (prov === undefined) {
|
|
198
203
|
logger.debug('No plugin found with providerName', provider);
|
|
@@ -207,21 +212,21 @@ var Storage = /** @class */ (function () {
|
|
|
207
212
|
return axios_1.default.isCancel(error);
|
|
208
213
|
};
|
|
209
214
|
Storage.prototype.put = function (key, object, config) {
|
|
210
|
-
var
|
|
211
|
-
var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;
|
|
215
|
+
var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;
|
|
212
216
|
var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });
|
|
213
217
|
if (prov === undefined) {
|
|
214
218
|
logger.debug('No plugin found with providerName', provider);
|
|
215
219
|
return Promise.reject('No plugin found in Storage for the provider');
|
|
216
220
|
}
|
|
217
221
|
var cancelTokenSource = this.getCancellableTokenSource();
|
|
218
|
-
var
|
|
219
|
-
this.
|
|
220
|
-
|
|
222
|
+
var response = prov.put(key, object, __assign(__assign({}, config), { cancelTokenSource: cancelTokenSource }));
|
|
223
|
+
if (!this.isUploadTask(response)) {
|
|
224
|
+
this.updateRequestToBeCancellable(response, cancelTokenSource);
|
|
225
|
+
}
|
|
226
|
+
return response;
|
|
221
227
|
};
|
|
222
228
|
Storage.prototype.remove = function (key, config) {
|
|
223
|
-
var
|
|
224
|
-
var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;
|
|
229
|
+
var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;
|
|
225
230
|
var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });
|
|
226
231
|
if (prov === undefined) {
|
|
227
232
|
logger.debug('No plugin found with providerName', provider);
|
|
@@ -230,8 +235,7 @@ var Storage = /** @class */ (function () {
|
|
|
230
235
|
return prov.remove(key, config);
|
|
231
236
|
};
|
|
232
237
|
Storage.prototype.list = function (path, config) {
|
|
233
|
-
var
|
|
234
|
-
var provider = ((_a = config) === null || _a === void 0 ? void 0 : _a.provider) || DEFAULT_PROVIDER;
|
|
238
|
+
var provider = (config === null || config === void 0 ? void 0 : config.provider) || DEFAULT_PROVIDER;
|
|
235
239
|
var prov = this._pluggables.find(function (pluggable) { return pluggable.getProviderName() === provider; });
|
|
236
240
|
if (prov === undefined) {
|
|
237
241
|
logger.debug('No plugin found with providerName', provider);
|
package/lib/Storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0CAAoE;AACpE,yCAA4C;
|
|
1
|
+
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../src/Storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { ICredentials } from '@aws-amplify/core';
|
|
3
|
+
import { StorageAccessLevel, CustomPrefix } from '../types';
|
|
4
|
+
import { InitializeMiddleware, InitializeHandlerOptions, FinalizeRequestHandlerOptions, FinalizeRequestMiddleware } from '@aws-sdk/types';
|
|
5
|
+
import { S3ClientConfig, S3Client } from '@aws-sdk/client-s3';
|
|
6
|
+
import { CancelTokenSource } from 'axios';
|
|
7
|
+
import * as events from 'events';
|
|
8
|
+
export declare const getPrefix: (config: {
|
|
9
|
+
credentials: ICredentials;
|
|
10
|
+
level?: StorageAccessLevel;
|
|
11
|
+
customPrefix?: CustomPrefix;
|
|
12
|
+
identityId?: string;
|
|
13
|
+
}) => string;
|
|
14
|
+
export declare const createPrefixMiddleware: (opt: Record<string, any>, key: string) => InitializeMiddleware<any, any>;
|
|
15
|
+
export declare const autoAdjustClockskewMiddleware: (config: S3ClientConfig) => FinalizeRequestMiddleware<any, any>;
|
|
16
|
+
export declare const autoAdjustClockskewMiddlewareOptions: FinalizeRequestHandlerOptions;
|
|
17
|
+
export declare const prefixMiddlewareOptions: InitializeHandlerOptions;
|
|
18
|
+
export declare const credentialsProvider: () => Promise<{
|
|
19
|
+
accessKeyId: any;
|
|
20
|
+
sessionToken: any;
|
|
21
|
+
secretAccessKey: any;
|
|
22
|
+
identityId: any;
|
|
23
|
+
authenticated: any;
|
|
24
|
+
} | {
|
|
25
|
+
accessKeyId: string;
|
|
26
|
+
secretAccessKey: string;
|
|
27
|
+
}>;
|
|
28
|
+
export declare const createS3Client: (config: {
|
|
29
|
+
region?: string;
|
|
30
|
+
cancelTokenSource?: CancelTokenSource;
|
|
31
|
+
dangerouslyConnectToHttpEndpointForTesting?: boolean;
|
|
32
|
+
useAccelerateEndpoint?: boolean;
|
|
33
|
+
}, emitter?: events.EventEmitter) => S3Client;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (_) try {
|
|
29
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
var core_1 = require("@aws-amplify/core");
|
|
51
|
+
var client_s3_1 = require("@aws-sdk/client-s3");
|
|
52
|
+
var axios_http_handler_1 = require("../providers/axios-http-handler");
|
|
53
|
+
var StorageConstants_1 = require("./StorageConstants");
|
|
54
|
+
var logger = new core_1.Logger('S3ClientUtils');
|
|
55
|
+
// placeholder credentials in order to satisfy type requirement, always results in 403 when used
|
|
56
|
+
var INVALID_CRED = { accessKeyId: '', secretAccessKey: '' };
|
|
57
|
+
exports.getPrefix = function (config) {
|
|
58
|
+
var credentials = config.credentials, level = config.level, customPrefix = config.customPrefix, identityId = config.identityId;
|
|
59
|
+
var resolvedCustomPrefix = customPrefix || {};
|
|
60
|
+
var resolvedIdentityId = identityId || credentials.identityId;
|
|
61
|
+
var privatePath = (resolvedCustomPrefix.private !== undefined
|
|
62
|
+
? resolvedCustomPrefix.private
|
|
63
|
+
: 'private/') +
|
|
64
|
+
resolvedIdentityId +
|
|
65
|
+
'/';
|
|
66
|
+
var protectedPath = (resolvedCustomPrefix.protected !== undefined
|
|
67
|
+
? resolvedCustomPrefix.protected
|
|
68
|
+
: 'protected/') +
|
|
69
|
+
resolvedIdentityId +
|
|
70
|
+
'/';
|
|
71
|
+
var publicPath = resolvedCustomPrefix.public !== undefined
|
|
72
|
+
? resolvedCustomPrefix.public
|
|
73
|
+
: 'public/';
|
|
74
|
+
switch (level) {
|
|
75
|
+
case 'private':
|
|
76
|
+
return privatePath;
|
|
77
|
+
case 'protected':
|
|
78
|
+
return protectedPath;
|
|
79
|
+
default:
|
|
80
|
+
return publicPath;
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
exports.createPrefixMiddleware = function (opt, key) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
+
var credentials, cred, prefix, clonedInput, result;
|
|
85
|
+
return __generator(this, function (_a) {
|
|
86
|
+
switch (_a.label) {
|
|
87
|
+
case 0: return [4 /*yield*/, core_1.Credentials.get()];
|
|
88
|
+
case 1:
|
|
89
|
+
credentials = _a.sent();
|
|
90
|
+
cred = core_1.Credentials.shear(credentials);
|
|
91
|
+
prefix = exports.getPrefix(__assign(__assign({}, opt), { credentials: cred }));
|
|
92
|
+
clonedInput = Object.assign({}, args.input);
|
|
93
|
+
if (Object.prototype.hasOwnProperty.call(args.input, 'Key')) {
|
|
94
|
+
clonedInput.Key = prefix + key;
|
|
95
|
+
args.input = clonedInput;
|
|
96
|
+
}
|
|
97
|
+
else if (Object.prototype.hasOwnProperty.call(args.input, 'Prefix')) {
|
|
98
|
+
clonedInput.Prefix = prefix + key;
|
|
99
|
+
args.input = clonedInput;
|
|
100
|
+
}
|
|
101
|
+
result = next(args);
|
|
102
|
+
return [2 /*return*/, result];
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}); }; }; };
|
|
106
|
+
var isTimeSkewedError = function (err) {
|
|
107
|
+
return err.ServerTime &&
|
|
108
|
+
typeof err.Code === 'string' &&
|
|
109
|
+
err.Code === 'RequestTimeTooSkewed';
|
|
110
|
+
};
|
|
111
|
+
// we want to take the S3Client config in parameter so we can modify it's systemClockOffset
|
|
112
|
+
exports.autoAdjustClockskewMiddleware = function (config) { return function (next, _context) { return function (args) { return __awaiter(void 0, void 0, void 0, function () {
|
|
113
|
+
var err_1, serverDate;
|
|
114
|
+
return __generator(this, function (_a) {
|
|
115
|
+
switch (_a.label) {
|
|
116
|
+
case 0:
|
|
117
|
+
_a.trys.push([0, 2, , 3]);
|
|
118
|
+
return [4 /*yield*/, next(args)];
|
|
119
|
+
case 1: return [2 /*return*/, _a.sent()];
|
|
120
|
+
case 2:
|
|
121
|
+
err_1 = _a.sent();
|
|
122
|
+
if (isTimeSkewedError(err_1)) {
|
|
123
|
+
serverDate = new Date(err_1.ServerTime);
|
|
124
|
+
config.systemClockOffset = serverDate.getTime() - Date.now();
|
|
125
|
+
}
|
|
126
|
+
throw err_1;
|
|
127
|
+
case 3: return [2 /*return*/];
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
}); }; }; };
|
|
131
|
+
exports.autoAdjustClockskewMiddlewareOptions = {
|
|
132
|
+
step: 'finalizeRequest',
|
|
133
|
+
name: 'autoAdjustClockskewMiddleware',
|
|
134
|
+
};
|
|
135
|
+
exports.prefixMiddlewareOptions = {
|
|
136
|
+
step: 'initialize',
|
|
137
|
+
name: 'addPrefixMiddleware',
|
|
138
|
+
};
|
|
139
|
+
exports.credentialsProvider = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
140
|
+
var credentials, cred, error_1;
|
|
141
|
+
return __generator(this, function (_a) {
|
|
142
|
+
switch (_a.label) {
|
|
143
|
+
case 0:
|
|
144
|
+
_a.trys.push([0, 2, , 3]);
|
|
145
|
+
return [4 /*yield*/, core_1.Credentials.get()];
|
|
146
|
+
case 1:
|
|
147
|
+
credentials = _a.sent();
|
|
148
|
+
if (!credentials)
|
|
149
|
+
return [2 /*return*/, INVALID_CRED];
|
|
150
|
+
cred = core_1.Credentials.shear(credentials);
|
|
151
|
+
logger.debug('credentials provider get credentials', cred);
|
|
152
|
+
return [2 /*return*/, cred];
|
|
153
|
+
case 2:
|
|
154
|
+
error_1 = _a.sent();
|
|
155
|
+
logger.warn('credentials provider error', error_1);
|
|
156
|
+
return [2 /*return*/, INVALID_CRED];
|
|
157
|
+
case 3: return [2 /*return*/];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}); };
|
|
161
|
+
exports.createS3Client = function (config, emitter) {
|
|
162
|
+
var region = config.region, cancelTokenSource = config.cancelTokenSource, dangerouslyConnectToHttpEndpointForTesting = config.dangerouslyConnectToHttpEndpointForTesting, useAccelerateEndpoint = config.useAccelerateEndpoint;
|
|
163
|
+
var localTestingConfig = {};
|
|
164
|
+
if (dangerouslyConnectToHttpEndpointForTesting) {
|
|
165
|
+
localTestingConfig = {
|
|
166
|
+
endpoint: StorageConstants_1.localTestingStorageEndpoint,
|
|
167
|
+
tls: false,
|
|
168
|
+
bucketEndpoint: false,
|
|
169
|
+
forcePathStyle: true,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
var s3client = new client_s3_1.S3Client(__assign(__assign({ region: region,
|
|
173
|
+
// Using provider instead of a static credentials, so that if an upload task was in progress, but credentials gets
|
|
174
|
+
// changed or invalidated (e.g user signed out), the subsequent requests will fail.
|
|
175
|
+
credentials: exports.credentialsProvider, customUserAgent: core_1.getAmplifyUserAgent() }, localTestingConfig), { requestHandler: new axios_http_handler_1.AxiosHttpHandler({}, emitter, cancelTokenSource), useAccelerateEndpoint: useAccelerateEndpoint }));
|
|
176
|
+
s3client.middlewareStack.remove(StorageConstants_1.SET_CONTENT_LENGTH_HEADER);
|
|
177
|
+
return s3client;
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=S3ClientUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"S3ClientUtils.js","sourceRoot":"","sources":["../../src/common/S3ClientUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined' &&
|
|
4
|
+
typeof Symbol.for === 'function'
|
|
5
|
+
? Symbol.for('amplify_default')
|
|
6
|
+
: '@@amplify_default');
|
|
7
|
+
exports.SET_CONTENT_LENGTH_HEADER = 'contentLengthMiddleware';
|
|
8
|
+
exports.localTestingStorageEndpoint = 'http://localhost:20005';
|
|
9
|
+
exports.UPLOADS_STORAGE_KEY = '__uploadInProgress';
|
|
10
|
+
//# sourceMappingURL=StorageConstants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageConstants.js","sourceRoot":"","sources":["../../src/common/StorageConstants.ts"],"names":[],"mappings":";;AAAa,QAAA,cAAc,GAAG,CAAC,OAAO,MAAM,KAAK,WAAW;IAC5D,OAAO,MAAM,CAAC,GAAG,KAAK,UAAU;IAC/B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAC/B,CAAC,CAAC,mBAAmB,CAAW,CAAC;AAErB,QAAA,yBAAyB,GAAG,yBAAyB,CAAC;AAEtD,QAAA,2BAA2B,GAAG,wBAAwB,CAAC;AAEvD,QAAA,mBAAmB,GAAG,oBAAoB,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare enum StorageErrorStrings {
|
|
2
2
|
NO_CREDENTIALS = "No credentials",
|
|
3
3
|
NO_SRC_KEY = "source param should be an object with the property \"key\" with value of type string",
|
|
4
|
-
NO_DEST_KEY = "destination param should be an object with the property \"key\" with value of type string"
|
|
4
|
+
NO_DEST_KEY = "destination param should be an object with the property \"key\" with value of type string",
|
|
5
|
+
INVALID_BLOB = "Object must be an instance of Blob"
|
|
5
6
|
}
|
|
6
7
|
export declare enum AWSS3ProviderMultipartCopierErrors {
|
|
7
8
|
CLEANUP_FAILED = "Multipart copy clean up failed",
|
|
@@ -10,3 +11,6 @@ export declare enum AWSS3ProviderMultipartCopierErrors {
|
|
|
10
11
|
NO_COPYSOURCE = "You must specify a copy source",
|
|
11
12
|
MAX_NUM_PARTS_EXCEEDED = "Only a maximum of 10000 parts are allowed"
|
|
12
13
|
}
|
|
14
|
+
export declare enum AWSS3ProviderUploadErrorStrings {
|
|
15
|
+
UPLOAD_PAUSED_MESSAGE = "paused"
|
|
16
|
+
}
|
|
@@ -5,6 +5,7 @@ var StorageErrorStrings;
|
|
|
5
5
|
StorageErrorStrings["NO_CREDENTIALS"] = "No credentials";
|
|
6
6
|
StorageErrorStrings["NO_SRC_KEY"] = "source param should be an object with the property \"key\" with value of type string";
|
|
7
7
|
StorageErrorStrings["NO_DEST_KEY"] = "destination param should be an object with the property \"key\" with value of type string";
|
|
8
|
+
StorageErrorStrings["INVALID_BLOB"] = "Object must be an instance of Blob";
|
|
8
9
|
})(StorageErrorStrings = exports.StorageErrorStrings || (exports.StorageErrorStrings = {}));
|
|
9
10
|
var AWSS3ProviderMultipartCopierErrors;
|
|
10
11
|
(function (AWSS3ProviderMultipartCopierErrors) {
|
|
@@ -14,4 +15,8 @@ var AWSS3ProviderMultipartCopierErrors;
|
|
|
14
15
|
AWSS3ProviderMultipartCopierErrors["NO_COPYSOURCE"] = "You must specify a copy source";
|
|
15
16
|
AWSS3ProviderMultipartCopierErrors["MAX_NUM_PARTS_EXCEEDED"] = "Only a maximum of 10000 parts are allowed";
|
|
16
17
|
})(AWSS3ProviderMultipartCopierErrors = exports.AWSS3ProviderMultipartCopierErrors || (exports.AWSS3ProviderMultipartCopierErrors = {}));
|
|
18
|
+
var AWSS3ProviderUploadErrorStrings;
|
|
19
|
+
(function (AWSS3ProviderUploadErrorStrings) {
|
|
20
|
+
AWSS3ProviderUploadErrorStrings["UPLOAD_PAUSED_MESSAGE"] = "paused";
|
|
21
|
+
})(AWSS3ProviderUploadErrorStrings = exports.AWSS3ProviderUploadErrorStrings || (exports.AWSS3ProviderUploadErrorStrings = {}));
|
|
17
22
|
//# sourceMappingURL=StorageErrorStrings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StorageErrorStrings.js","sourceRoot":"","sources":["../../src/common/StorageErrorStrings.ts"],"names":[],"mappings":";;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"StorageErrorStrings.js","sourceRoot":"","sources":["../../src/common/StorageErrorStrings.ts"],"names":[],"mappings":";;AAAA,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC9B,wDAAiC,CAAA;IACjC,0HAAiG,CAAA;IACjG,gIAAuG,CAAA;IACvG,0EAAmD,CAAA;AACpD,CAAC,EALW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAK9B;AAED,IAAY,kCAMX;AAND,WAAY,kCAAkC;IAC7C,uFAAiD,CAAA;IACjD,+EAAyC,CAAA;IACzC,gGAA0D,CAAA;IAC1D,sFAAgD,CAAA;IAChD,0GAAoE,CAAA;AACrE,CAAC,EANW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAM7C;AAED,IAAY,+BAEX;AAFD,WAAY,+BAA+B;IAC1C,mEAAgC,CAAA;AACjC,CAAC,EAFW,+BAA+B,GAA/B,uCAA+B,KAA/B,uCAA+B,QAE1C"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const byteLength: (x: unknown) => number;
|
|
2
|
+
export declare const dispatchStorageEvent: (track: boolean, event: string, attrs: any, metrics: any, message: string) => void;
|
|
3
|
+
export declare const isFile: (x: unknown) => x is File;
|
|
4
|
+
export declare const isBlob: (x: unknown) => x is Blob;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var core_1 = require("@aws-amplify/core");
|
|
4
|
+
var StorageConstants_1 = require("./StorageConstants");
|
|
5
|
+
exports.byteLength = function (x) {
|
|
6
|
+
if (typeof x === 'string') {
|
|
7
|
+
return x.length;
|
|
8
|
+
}
|
|
9
|
+
else if (isArrayBuffer(x)) {
|
|
10
|
+
return x.byteLength;
|
|
11
|
+
}
|
|
12
|
+
else if (exports.isBlob(x)) {
|
|
13
|
+
return x.size;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new Error('Cannot determine byte length of ' + x);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
exports.dispatchStorageEvent = function (track, event, attrs, metrics, message) {
|
|
20
|
+
if (track) {
|
|
21
|
+
var data = { attrs: attrs };
|
|
22
|
+
if (metrics) {
|
|
23
|
+
data['metrics'] = metrics;
|
|
24
|
+
}
|
|
25
|
+
core_1.Hub.dispatch('storage', {
|
|
26
|
+
event: event,
|
|
27
|
+
data: data,
|
|
28
|
+
message: message,
|
|
29
|
+
}, 'Storage', StorageConstants_1.AMPLIFY_SYMBOL);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.isFile = function (x) {
|
|
33
|
+
return typeof x !== 'undefined' && x instanceof File;
|
|
34
|
+
};
|
|
35
|
+
exports.isBlob = function (x) {
|
|
36
|
+
return typeof x !== 'undefined' && x instanceof Blob;
|
|
37
|
+
};
|
|
38
|
+
var isArrayBuffer = function (x) {
|
|
39
|
+
return typeof x !== 'undefined' && x instanceof ArrayBuffer;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=StorageUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageUtils.js","sourceRoot":"","sources":["../../src/common/StorageUtils.ts"],"names":[],"mappings":";;AAAA,0CAAwC;AACxC,uDAAoD;AAEvC,QAAA,UAAU,GAAG,UAAC,CAAU;IACpC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;QAC1B,OAAO,CAAC,CAAC,MAAM,CAAC;KAChB;SAAM,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;QAC5B,OAAO,CAAC,CAAC,UAAU,CAAC;KACpB;SAAM,IAAI,cAAM,CAAC,CAAC,CAAC,EAAE;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC;KACd;SAAM;QACN,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,CAAC,CAAC;KACxD;AACF,CAAC,CAAC;AAEW,QAAA,oBAAoB,GAAG,UACnC,KAAc,EACd,KAAa,EACb,KAAU,EACV,OAAY,EACZ,OAAe;IAEf,IAAI,KAAK,EAAE;QACV,IAAM,IAAI,GAAG,EAAE,KAAK,OAAA,EAAE,CAAC;QACvB,IAAI,OAAO,EAAE;YACZ,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;SAC1B;QACD,UAAG,CAAC,QAAQ,CACX,SAAS,EACT;YACC,KAAK,OAAA;YACL,IAAI,MAAA;YACJ,OAAO,SAAA;SACP,EACD,SAAS,EACT,iCAAc,CACd,CAAC;KACF;AACF,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,UAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC;AACtD,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG,UAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,YAAY,IAAI,CAAC;AACtD,CAAC,CAAC;AAEF,IAAM,aAAa,GAAG,UAAC,CAAU;IAChC,OAAO,OAAO,CAAC,KAAK,WAAW,IAAI,CAAC,YAAY,WAAW,CAAC;AAC7D,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PutObjectCommandInput } from '@aws-sdk/client-s3';
|
|
2
|
-
import { StorageOptions, StorageProvider, S3ProviderGetConfig, S3ProviderGetOuput, S3ProviderPutConfig, S3ProviderRemoveConfig, S3ProviderListOutput, S3ProviderListConfig,
|
|
2
|
+
import { StorageOptions, StorageProvider, S3ProviderGetConfig, S3ProviderGetOuput, S3ProviderPutConfig, S3ProviderRemoveConfig, S3ProviderListOutput, S3ProviderListConfig, S3ProviderCopyConfig, S3ProviderCopyOutput, S3CopySource, S3CopyDestination, S3ProviderRemoveOutput, S3ProviderPutOutput } from '../types';
|
|
3
3
|
/**
|
|
4
4
|
* Provide storage methods to use AWS S3
|
|
5
5
|
*/
|
|
@@ -7,6 +7,7 @@ export declare class AWSS3Provider implements StorageProvider {
|
|
|
7
7
|
static readonly CATEGORY = "Storage";
|
|
8
8
|
static readonly PROVIDER_NAME = "AWSS3";
|
|
9
9
|
private _config;
|
|
10
|
+
private _storage;
|
|
10
11
|
/**
|
|
11
12
|
* Initialize Storage with AWS configurations
|
|
12
13
|
* @param {Object} config - Configuration object for storage
|
|
@@ -26,6 +27,7 @@ export declare class AWSS3Provider implements StorageProvider {
|
|
|
26
27
|
* @return {Object} - Current configuration
|
|
27
28
|
*/
|
|
28
29
|
configure(config?: any): object;
|
|
30
|
+
private startResumableUpload;
|
|
29
31
|
/**
|
|
30
32
|
* Copy an object from a source object to a new object within the same bucket. Can optionally copy files across
|
|
31
33
|
* different level or identityId (if source object's level is 'protected').
|
|
@@ -48,12 +50,13 @@ export declare class AWSS3Provider implements StorageProvider {
|
|
|
48
50
|
get<T extends S3ProviderGetConfig & StorageOptions>(key: string, config?: T): Promise<S3ProviderGetOuput<T>>;
|
|
49
51
|
/**
|
|
50
52
|
* Put a file in S3 bucket specified to configure method
|
|
51
|
-
* @param
|
|
52
|
-
* @param
|
|
53
|
-
* @param
|
|
54
|
-
* @return
|
|
53
|
+
* @param key - key of the object
|
|
54
|
+
* @param object - File to be put in Amazon S3 bucket
|
|
55
|
+
* @param [config] - Optional configuration for the underlying S3 command
|
|
56
|
+
* @return an instance of AWSS3UploadTask or a promise that resolves to an object with the new object's key on
|
|
57
|
+
* success.
|
|
55
58
|
*/
|
|
56
|
-
put(key: string, object: PutObjectCommandInput['Body'], config?:
|
|
59
|
+
put<T extends S3ProviderPutConfig>(key: string, object: PutObjectCommandInput['Body'], config?: T): S3ProviderPutOutput<T>;
|
|
57
60
|
/**
|
|
58
61
|
* Remove the object for specified key
|
|
59
62
|
* @param {string} key - key of the object
|