@aws-amplify/storage 4.5.2-next.13 → 4.5.2-next.20
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/aws-amplify-storage.js +17930 -11093
- package/dist/aws-amplify-storage.js.map +1 -1
- package/dist/aws-amplify-storage.min.js +204 -4
- package/dist/aws-amplify-storage.min.js.map +1 -1
- package/lib/Storage.d.ts +1 -0
- package/lib/Storage.js +36 -36
- package/lib/Storage.js.map +1 -1
- package/lib/common/S3ClientUtils.js +9 -55
- package/lib/common/S3ClientUtils.js.map +1 -1
- package/lib/index.d.ts +3 -4
- package/lib/index.js +4 -43
- package/lib/index.js.map +1 -1
- package/lib/providers/AWSS3Provider.d.ts +4 -4
- package/lib/providers/AWSS3Provider.js +67 -132
- package/lib/providers/AWSS3Provider.js.map +1 -1
- package/lib/providers/AWSS3ProviderManagedUpload.js +17 -70
- package/lib/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib/providers/AWSS3UploadTask.js +29 -87
- package/lib/providers/AWSS3UploadTask.js.map +1 -1
- package/lib/providers/axios-http-handler.js +4 -33
- package/lib/providers/axios-http-handler.js.map +1 -1
- package/lib/types/AWSS3Provider.d.ts +5 -3
- package/lib-esm/Storage.d.ts +1 -0
- package/lib-esm/Storage.js +31 -28
- package/lib-esm/Storage.js.map +1 -1
- package/lib-esm/common/S3ClientUtils.js +1 -47
- package/lib-esm/common/S3ClientUtils.js.map +1 -1
- package/lib-esm/index.d.ts +3 -4
- package/lib-esm/index.js +3 -41
- package/lib-esm/index.js.map +1 -1
- package/lib-esm/providers/AWSS3Provider.d.ts +4 -4
- package/lib-esm/providers/AWSS3Provider.js +50 -108
- package/lib-esm/providers/AWSS3Provider.js.map +1 -1
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js +1 -47
- package/lib-esm/providers/AWSS3ProviderManagedUpload.js.map +1 -1
- package/lib-esm/providers/AWSS3UploadTask.js +1 -56
- package/lib-esm/providers/AWSS3UploadTask.js.map +1 -1
- package/lib-esm/providers/axios-http-handler.js +1 -27
- package/lib-esm/providers/axios-http-handler.js.map +1 -1
- package/lib-esm/types/AWSS3Provider.d.ts +5 -3
- package/package.json +8 -7
- package/src/Storage.ts +37 -1
- package/src/index.ts +3 -40
- package/src/providers/AWSS3Provider.ts +36 -30
- package/src/types/AWSS3Provider.ts +5 -3
|
@@ -10,33 +10,7 @@
|
|
|
10
10
|
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
15
|
-
if (m) return m.call(o);
|
|
16
|
-
if (o && typeof o.length === "number") return {
|
|
17
|
-
next: function () {
|
|
18
|
-
if (o && i >= o.length) o = void 0;
|
|
19
|
-
return { value: o && o[i++], done: !o };
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
23
|
-
};
|
|
24
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
25
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
26
|
-
if (!m) return o;
|
|
27
|
-
var i = m.call(o), r, ar = [], e;
|
|
28
|
-
try {
|
|
29
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
30
|
-
}
|
|
31
|
-
catch (error) { e = { error: error }; }
|
|
32
|
-
finally {
|
|
33
|
-
try {
|
|
34
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
35
|
-
}
|
|
36
|
-
finally { if (e) throw e.error; }
|
|
37
|
-
}
|
|
38
|
-
return ar;
|
|
39
|
-
};
|
|
13
|
+
import { __read, __values } from "tslib";
|
|
40
14
|
import { HttpResponse } from '@aws-sdk/protocol-http';
|
|
41
15
|
import { buildQueryString } from '@aws-sdk/querystring-builder';
|
|
42
16
|
import axios from 'axios';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axios-http-handler.js","sourceRoot":"","sources":["../../src/providers/axios-http-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG
|
|
1
|
+
{"version":3,"file":"axios-http-handler.js","sourceRoot":"","sources":["../../src/providers/axios-http-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,15 +64,17 @@ export declare type S3ProviderRemoveConfig = CommonStorageOptions & {
|
|
|
64
64
|
provider?: 'AWSS3';
|
|
65
65
|
};
|
|
66
66
|
export declare type S3ProviderListOutputWithToken = {
|
|
67
|
-
|
|
68
|
-
nextToken
|
|
67
|
+
results: S3ProviderListOutputItem[];
|
|
68
|
+
nextToken?: string;
|
|
69
|
+
hasNextToken: boolean;
|
|
69
70
|
};
|
|
70
71
|
export declare type S3ProviderRemoveOutput = DeleteObjectCommandOutput;
|
|
71
72
|
export declare type S3ProviderListConfig = CommonStorageOptions & {
|
|
72
73
|
bucket?: string;
|
|
73
|
-
|
|
74
|
+
pageSize?: number | 'ALL';
|
|
74
75
|
provider?: 'AWSS3';
|
|
75
76
|
identityId?: string;
|
|
77
|
+
pageToken?: string;
|
|
76
78
|
};
|
|
77
79
|
export declare type S3ClientOptions = StorageOptions & {
|
|
78
80
|
credentials: ICredentials;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-amplify/storage",
|
|
3
|
-
"version": "4.5.2-next.
|
|
3
|
+
"version": "4.5.2-next.20+072846a9f",
|
|
4
4
|
"description": "Storage category of aws-amplify",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"module": "./lib-esm/index.js",
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
"./lib/index": "./lib-esm/index.js"
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": [
|
|
12
|
-
"./src/
|
|
13
|
-
"./lib/
|
|
14
|
-
"./lib-esm/
|
|
12
|
+
"./src/Storage.ts",
|
|
13
|
+
"./lib/Storage.js",
|
|
14
|
+
"./lib-esm/Storage.js",
|
|
15
15
|
"./dist/aws-amplify-storage.min.js",
|
|
16
16
|
"./dist/aws-amplify-storage.js"
|
|
17
17
|
],
|
|
@@ -41,13 +41,14 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://aws-amplify.github.io/",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@aws-amplify/core": "4.6.2-next.
|
|
44
|
+
"@aws-amplify/core": "4.6.2-next.20+072846a9f",
|
|
45
45
|
"@aws-sdk/client-s3": "3.6.1",
|
|
46
46
|
"@aws-sdk/s3-request-presigner": "3.6.1",
|
|
47
47
|
"@aws-sdk/util-create-request": "3.6.1",
|
|
48
48
|
"@aws-sdk/util-format-url": "3.6.1",
|
|
49
49
|
"axios": "0.26.0",
|
|
50
|
-
"events": "^3.1.0"
|
|
50
|
+
"events": "^3.1.0",
|
|
51
|
+
"tslib": "^2.0.0"
|
|
51
52
|
},
|
|
52
53
|
"jest": {
|
|
53
54
|
"globals": {
|
|
@@ -98,5 +99,5 @@
|
|
|
98
99
|
"devDependencies": {
|
|
99
100
|
"@types/sinon": "^7.5.1"
|
|
100
101
|
},
|
|
101
|
-
"gitHead": "
|
|
102
|
+
"gitHead": "072846a9f0bd91f145e58aca2fca91a6478286b0"
|
|
102
103
|
}
|
package/src/Storage.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import { ConsoleLogger as Logger, Parser } from '@aws-amplify/core';
|
|
14
|
+
import { Amplify, ConsoleLogger as Logger, Parser } from '@aws-amplify/core';
|
|
15
15
|
import { AWSS3Provider } from './providers';
|
|
16
16
|
import {
|
|
17
17
|
StorageCopySource,
|
|
@@ -35,6 +35,7 @@ import { PutObjectCommandInput } from '@aws-sdk/client-s3';
|
|
|
35
35
|
import { AWSS3UploadTask } from './providers/AWSS3UploadTask';
|
|
36
36
|
|
|
37
37
|
const logger = new Logger('StorageClass');
|
|
38
|
+
const loggerStorageInstance = new Logger('Storage'); // Logging relating to Storage instance management
|
|
38
39
|
|
|
39
40
|
const DEFAULT_PROVIDER = 'AWSS3';
|
|
40
41
|
/**
|
|
@@ -405,6 +406,41 @@ export class Storage {
|
|
|
405
406
|
}
|
|
406
407
|
}
|
|
407
408
|
|
|
409
|
+
/**
|
|
410
|
+
* Configure & register Storage singleton instance.
|
|
411
|
+
*/
|
|
412
|
+
let _instance: Storage = null;
|
|
413
|
+
const getInstance = () => {
|
|
414
|
+
if (_instance) {
|
|
415
|
+
return _instance;
|
|
416
|
+
}
|
|
417
|
+
loggerStorageInstance.debug('Create Storage Instance, debug');
|
|
418
|
+
_instance = new Storage();
|
|
419
|
+
_instance.vault = new Storage();
|
|
420
|
+
|
|
421
|
+
const old_configure = _instance.configure;
|
|
422
|
+
_instance.configure = options => {
|
|
423
|
+
loggerStorageInstance.debug('storage configure called');
|
|
424
|
+
const vaultConfig = { ...old_configure.call(_instance, options) };
|
|
425
|
+
|
|
426
|
+
// set level private for each provider for the vault
|
|
427
|
+
Object.keys(vaultConfig).forEach(providerName => {
|
|
428
|
+
if (typeof vaultConfig[providerName] !== 'string') {
|
|
429
|
+
vaultConfig[providerName] = {
|
|
430
|
+
...vaultConfig[providerName],
|
|
431
|
+
level: 'private',
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
loggerStorageInstance.debug('storage vault configure called');
|
|
436
|
+
_instance.vault.configure(vaultConfig);
|
|
437
|
+
};
|
|
438
|
+
return _instance;
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
export const StorageInstance: Storage = getInstance();
|
|
442
|
+
Amplify.register(StorageInstance);
|
|
443
|
+
|
|
408
444
|
/**
|
|
409
445
|
* @deprecated use named import
|
|
410
446
|
*/
|
package/src/index.ts
CHANGED
|
@@ -11,50 +11,13 @@
|
|
|
11
11
|
* and limitations under the License.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import { Storage
|
|
15
|
-
|
|
16
|
-
import { Amplify, ConsoleLogger as Logger } from '@aws-amplify/core';
|
|
17
|
-
|
|
18
|
-
const logger = new Logger('Storage');
|
|
19
|
-
|
|
20
|
-
let _instance: StorageClass = null;
|
|
21
|
-
|
|
22
|
-
const getInstance = () => {
|
|
23
|
-
if (_instance) {
|
|
24
|
-
return _instance;
|
|
25
|
-
}
|
|
26
|
-
logger.debug('Create Storage Instance, debug');
|
|
27
|
-
_instance = new StorageClass();
|
|
28
|
-
_instance.vault = new StorageClass();
|
|
29
|
-
|
|
30
|
-
const old_configure = _instance.configure;
|
|
31
|
-
_instance.configure = options => {
|
|
32
|
-
logger.debug('storage configure called');
|
|
33
|
-
const vaultConfig = { ...old_configure.call(_instance, options) };
|
|
34
|
-
|
|
35
|
-
// set level private for each provider for the vault
|
|
36
|
-
Object.keys(vaultConfig).forEach(providerName => {
|
|
37
|
-
if (typeof vaultConfig[providerName] !== 'string') {
|
|
38
|
-
vaultConfig[providerName] = {
|
|
39
|
-
...vaultConfig[providerName],
|
|
40
|
-
level: 'private',
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
logger.debug('storage vault configure called');
|
|
45
|
-
_instance.vault.configure(vaultConfig);
|
|
46
|
-
};
|
|
47
|
-
return _instance;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const Storage: StorageClass = getInstance();
|
|
51
|
-
Amplify.register(Storage);
|
|
14
|
+
import { Storage, StorageInstance } from './Storage';
|
|
52
15
|
|
|
53
16
|
/**
|
|
54
17
|
* @deprecated use named import
|
|
55
18
|
*/
|
|
56
|
-
export default
|
|
19
|
+
export default StorageInstance;
|
|
57
20
|
|
|
58
|
-
export { StorageClass };
|
|
21
|
+
export { Storage as StorageClass, StorageInstance as Storage };
|
|
59
22
|
export * from './providers';
|
|
60
23
|
export * from './types';
|
|
@@ -45,7 +45,6 @@ import {
|
|
|
45
45
|
S3ProviderGetOuput,
|
|
46
46
|
S3ProviderPutConfig,
|
|
47
47
|
S3ProviderRemoveConfig,
|
|
48
|
-
S3ProviderListOutput,
|
|
49
48
|
S3ProviderListConfig,
|
|
50
49
|
S3ProviderCopyConfig,
|
|
51
50
|
S3ProviderCopyOutput,
|
|
@@ -58,6 +57,7 @@ import {
|
|
|
58
57
|
ResumableUploadConfig,
|
|
59
58
|
UploadTask,
|
|
60
59
|
S3ClientOptions,
|
|
60
|
+
S3ProviderListOutputWithToken,
|
|
61
61
|
} from '../types';
|
|
62
62
|
import { StorageErrorStrings } from '../common/StorageErrorStrings';
|
|
63
63
|
import { dispatchStorageEvent } from '../common/StorageUtils';
|
|
@@ -69,7 +69,6 @@ import {
|
|
|
69
69
|
autoAdjustClockskewMiddlewareOptions,
|
|
70
70
|
createS3Client,
|
|
71
71
|
} from '../common/S3ClientUtils';
|
|
72
|
-
import { S3ProviderListOutputWithToken } from '.././types/AWSS3Provider';
|
|
73
72
|
import { AWSS3ProviderManagedUpload } from './AWSS3ProviderManagedUpload';
|
|
74
73
|
import { AWSS3UploadTask, TaskEvents } from './AWSS3UploadTask';
|
|
75
74
|
import { UPLOADS_STORAGE_KEY } from '../common/StorageConstants';
|
|
@@ -686,15 +685,15 @@ export class AWSS3Provider implements StorageProvider {
|
|
|
686
685
|
opt: S3ClientOptions,
|
|
687
686
|
prefix: string
|
|
688
687
|
): Promise<S3ProviderListOutputWithToken> {
|
|
689
|
-
const
|
|
690
|
-
|
|
691
|
-
|
|
688
|
+
const list: S3ProviderListOutputWithToken = {
|
|
689
|
+
results: [],
|
|
690
|
+
hasNextToken: false,
|
|
692
691
|
};
|
|
693
692
|
const s3 = this._createNewS3Client(opt);
|
|
694
693
|
const listObjectsV2Command = new ListObjectsV2Command({ ...params });
|
|
695
694
|
const response = await s3.send(listObjectsV2Command);
|
|
696
695
|
if (response && response.Contents) {
|
|
697
|
-
|
|
696
|
+
list.results = response.Contents.map(item => {
|
|
698
697
|
return {
|
|
699
698
|
key: item.Key.substr(prefix.length),
|
|
700
699
|
eTag: item.ETag,
|
|
@@ -702,70 +701,77 @@ export class AWSS3Provider implements StorageProvider {
|
|
|
702
701
|
size: item.Size,
|
|
703
702
|
};
|
|
704
703
|
});
|
|
705
|
-
|
|
704
|
+
list.nextToken = response.NextContinuationToken;
|
|
705
|
+
list.hasNextToken = response.IsTruncated;
|
|
706
706
|
}
|
|
707
|
-
return
|
|
707
|
+
return list;
|
|
708
708
|
}
|
|
709
709
|
|
|
710
710
|
/**
|
|
711
711
|
* List bucket objects relative to the level and prefix specified
|
|
712
712
|
* @param {string} path - the path that contains objects
|
|
713
713
|
* @param {S3ProviderListConfig} [config] - Optional configuration for the underlying S3 command
|
|
714
|
-
* @return {Promise<
|
|
715
|
-
* all objects in path
|
|
714
|
+
* @return {Promise<S3ProviderListOutputWithToken>} - Promise resolves to list of keys, eTags, lastModified
|
|
715
|
+
* and file size for all objects in path
|
|
716
716
|
*/
|
|
717
717
|
public async list(
|
|
718
718
|
path: string,
|
|
719
719
|
config?: S3ProviderListConfig
|
|
720
|
-
): Promise<
|
|
720
|
+
): Promise<S3ProviderListOutputWithToken> {
|
|
721
721
|
const credentialsOK = await this._ensureCredentials();
|
|
722
722
|
if (!credentialsOK || !this._isWithCredentials(this._config)) {
|
|
723
723
|
throw new Error(StorageErrorStrings.NO_CREDENTIALS);
|
|
724
724
|
}
|
|
725
725
|
const opt: S3ClientOptions = Object.assign({}, this._config, config);
|
|
726
|
-
const { bucket, track,
|
|
726
|
+
const { bucket, track, pageSize, pageToken } = opt;
|
|
727
727
|
const prefix = this._prefix(opt);
|
|
728
728
|
const final_path = prefix + path;
|
|
729
729
|
logger.debug('list ' + path + ' from ' + final_path);
|
|
730
730
|
try {
|
|
731
|
-
const list:
|
|
732
|
-
|
|
731
|
+
const list: S3ProviderListOutputWithToken = {
|
|
732
|
+
results: [],
|
|
733
|
+
hasNextToken: false,
|
|
734
|
+
};
|
|
735
|
+
const MAX_PAGE_SIZE = 1000;
|
|
733
736
|
let listResult: S3ProviderListOutputWithToken;
|
|
734
737
|
const params: ListObjectsV2Request = {
|
|
735
738
|
Bucket: bucket,
|
|
736
739
|
Prefix: final_path,
|
|
737
|
-
MaxKeys:
|
|
740
|
+
MaxKeys: MAX_PAGE_SIZE,
|
|
741
|
+
ContinuationToken: pageToken,
|
|
738
742
|
};
|
|
739
|
-
|
|
743
|
+
params.ContinuationToken = pageToken;
|
|
744
|
+
if (pageSize === 'ALL') {
|
|
740
745
|
do {
|
|
741
|
-
params.ContinuationToken = token;
|
|
742
|
-
params.MaxKeys = 1000;
|
|
743
746
|
listResult = await this._list(params, opt, prefix);
|
|
744
|
-
list.push(...listResult.
|
|
745
|
-
if (listResult.nextToken)
|
|
747
|
+
list.results.push(...listResult.results);
|
|
748
|
+
if (listResult.nextToken)
|
|
749
|
+
params.ContinuationToken = listResult.nextToken;
|
|
746
750
|
} while (listResult.nextToken);
|
|
747
751
|
} else {
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
752
|
+
if (
|
|
753
|
+
pageSize &&
|
|
754
|
+
pageSize <= MAX_PAGE_SIZE &&
|
|
755
|
+
typeof pageSize === 'number'
|
|
756
|
+
)
|
|
757
|
+
params.MaxKeys = pageSize;
|
|
758
|
+
else logger.warn(`pageSize should be from 0 - ${MAX_PAGE_SIZE}.`);
|
|
751
759
|
listResult = await this._list(params, opt, prefix);
|
|
752
|
-
list.push(...listResult.
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
"maxkeys can be from 0 - 1000 or 'ALL'. To list all files you can set maxKeys to 'ALL'."
|
|
756
|
-
);
|
|
760
|
+
list.results.push(...listResult.results);
|
|
761
|
+
list.hasNextToken = listResult.hasNextToken;
|
|
762
|
+
list.nextToken = null ?? listResult.nextToken;
|
|
757
763
|
}
|
|
758
764
|
dispatchStorageEvent(
|
|
759
765
|
track,
|
|
760
766
|
'list',
|
|
761
767
|
{ method: 'list', result: 'success' },
|
|
762
768
|
null,
|
|
763
|
-
`${list.length} items returned from list operation`
|
|
769
|
+
`${list.results.length} items returned from list operation`
|
|
764
770
|
);
|
|
765
771
|
logger.debug('list', list);
|
|
766
772
|
return list;
|
|
767
773
|
} catch (error) {
|
|
768
|
-
logger.
|
|
774
|
+
logger.error('list InvalidArgument', error);
|
|
769
775
|
dispatchStorageEvent(
|
|
770
776
|
track,
|
|
771
777
|
'list',
|
|
@@ -96,17 +96,19 @@ export type S3ProviderRemoveConfig = CommonStorageOptions & {
|
|
|
96
96
|
};
|
|
97
97
|
|
|
98
98
|
export type S3ProviderListOutputWithToken = {
|
|
99
|
-
|
|
100
|
-
nextToken
|
|
99
|
+
results: S3ProviderListOutputItem[];
|
|
100
|
+
nextToken?: string;
|
|
101
|
+
hasNextToken: boolean;
|
|
101
102
|
};
|
|
102
103
|
|
|
103
104
|
export type S3ProviderRemoveOutput = DeleteObjectCommandOutput;
|
|
104
105
|
|
|
105
106
|
export type S3ProviderListConfig = CommonStorageOptions & {
|
|
106
107
|
bucket?: string;
|
|
107
|
-
|
|
108
|
+
pageSize?: number | 'ALL';
|
|
108
109
|
provider?: 'AWSS3';
|
|
109
110
|
identityId?: string;
|
|
111
|
+
pageToken?: string;
|
|
110
112
|
};
|
|
111
113
|
|
|
112
114
|
export type S3ClientOptions = StorageOptions & {
|