@toa.io/extensions.storages 1.0.0-alpha.7 → 1.0.0-alpha.78
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/package.json +8 -8
- package/readme.md +32 -22
- package/schemas/fs.cos.yaml +2 -0
- package/schemas/s3.cos.yaml +1 -0
- package/schemas/tmp.cos.yaml +0 -1
- package/source/Entry.ts +1 -0
- package/source/Factory.ts +7 -4
- package/source/Provider.ts +5 -0
- package/source/Scanner.ts +46 -17
- package/source/Storage.test.ts +126 -76
- package/source/Storage.ts +92 -91
- package/source/deployment.ts +38 -7
- package/source/providers/FileSystem.test.ts +6 -0
- package/source/providers/FileSystem.ts +15 -2
- package/source/providers/Memory.ts +21 -7
- package/source/providers/S3.test.ts +1 -0
- package/source/providers/S3.ts +36 -6
- package/source/providers/index.test.ts +10 -0
- package/source/test/arny.jpg +0 -0
- package/source/test/sample.avi +0 -0
- package/source/test/sample.svg +4 -0
- package/source/test/sample.wav +0 -0
- package/transpiled/Entry.d.ts +1 -0
- package/transpiled/Factory.js +5 -3
- package/transpiled/Factory.js.map +1 -1
- package/transpiled/Provider.d.ts +3 -0
- package/transpiled/Provider.js +1 -0
- package/transpiled/Provider.js.map +1 -1
- package/transpiled/Scanner.d.ts +3 -1
- package/transpiled/Scanner.js +36 -15
- package/transpiled/Scanner.js.map +1 -1
- package/transpiled/Storage.d.ts +6 -6
- package/transpiled/Storage.js +66 -78
- package/transpiled/Storage.js.map +1 -1
- package/transpiled/deployment.d.ts +1 -1
- package/transpiled/deployment.js +30 -7
- package/transpiled/deployment.js.map +1 -1
- package/transpiled/providers/FileSystem.d.ts +4 -1
- package/transpiled/providers/FileSystem.js +10 -1
- package/transpiled/providers/FileSystem.js.map +1 -1
- package/transpiled/providers/Memory.d.ts +2 -0
- package/transpiled/providers/Memory.js +13 -1
- package/transpiled/providers/Memory.js.map +1 -1
- package/transpiled/providers/S3.d.ts +3 -0
- package/transpiled/providers/S3.js +23 -4
- package/transpiled/providers/S3.js.map +1 -1
- package/transpiled/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../source/providers/Memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"Memory.js","sourceRoot":"","sources":["../../source/providers/Memory.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,yCAAuC;AACvC,qDAA8C;AAC9C,oDAAqC;AAErC,0CAAsC;AAEtC;;GAEG;AACH,MAAa,QAAS,SAAQ,mBAAQ;IACnB,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE7C,KAAK,CAAC,GAAG,CAAE,IAAY;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAEnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO,sBAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,IAAY;QAC7B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;IAClC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAE,IAAY,EAAE,QAAgB,EAAE,MAAgB;QAChE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,CAAC;IAEM,KAAK,CAAC,MAAM,CAAE,IAAY;QAC/B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAE,IAAY,EAAE,EAAU;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAElC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,mBAAmB,IAAI,EAAE,CAAC,CAAA;QAEvD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAE,IAAY,EAAE,EAAU;QAC5C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAExC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,CAAA;gBAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACxB,CAAC;IACL,CAAC;CACF;AA5CD,4BA4CC"}
|
|
@@ -15,6 +15,7 @@ export declare class S3 extends Provider<S3Options> {
|
|
|
15
15
|
protected readonly client: S3Client;
|
|
16
16
|
constructor(options: S3Options, secrets?: S3Secrets);
|
|
17
17
|
get(Key: string): Promise<Readable | null>;
|
|
18
|
+
list(prefix: string): Promise<string[]>;
|
|
18
19
|
put(path: string, filename: string, stream: Readable): Promise<void>;
|
|
19
20
|
/**
|
|
20
21
|
* Deletes either a single object or "directory" - all objects
|
|
@@ -23,5 +24,7 @@ export declare class S3 extends Provider<S3Options> {
|
|
|
23
24
|
*/
|
|
24
25
|
delete(Key: string): Promise<void>;
|
|
25
26
|
move(from: string, keyTo: string): Promise<void>;
|
|
27
|
+
moveDir(from: string, to: string): Promise<void>;
|
|
28
|
+
private listObjects;
|
|
26
29
|
}
|
|
27
30
|
export {};
|
|
@@ -31,6 +31,7 @@ const node_stream_1 = require("node:stream");
|
|
|
31
31
|
const node_buffer_1 = require("node:buffer");
|
|
32
32
|
const posix_1 = require("node:path/posix");
|
|
33
33
|
const node_assert_1 = __importDefault(require("node:assert"));
|
|
34
|
+
const node_path_1 = require("node:path");
|
|
34
35
|
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
35
36
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
36
37
|
const nodeNativeFetch = __importStar(require("smithy-node-native-fetch"));
|
|
@@ -98,6 +99,10 @@ class S3 extends Provider_1.Provider {
|
|
|
98
99
|
throw err;
|
|
99
100
|
}
|
|
100
101
|
}
|
|
102
|
+
async list(prefix) {
|
|
103
|
+
return (await this.listObjects(prefix))
|
|
104
|
+
.map(({ Key }) => node_path_1.posix.basename(Key));
|
|
105
|
+
}
|
|
101
106
|
async put(path, filename, stream) {
|
|
102
107
|
await new lib_storage_1.Upload({
|
|
103
108
|
client: this.client,
|
|
@@ -126,10 +131,7 @@ class S3 extends Provider_1.Provider {
|
|
|
126
131
|
catch (err) {
|
|
127
132
|
node_assert_1.default.ok(err instanceof client_s3_1.NotFound || err instanceof client_s3_1.NoSuchKey, err);
|
|
128
133
|
}
|
|
129
|
-
const objectsToRemove =
|
|
130
|
-
for await (const page of (0, client_s3_1.paginateListObjectsV2)({ client }, { Bucket, Prefix: Key }))
|
|
131
|
-
for (const { Key } of page.Contents ?? [])
|
|
132
|
-
objectsToRemove.push({ Key });
|
|
134
|
+
const objectsToRemove = await this.listObjects(Key);
|
|
133
135
|
// Removing all objects in parallel in batches
|
|
134
136
|
await Promise.all((function* () {
|
|
135
137
|
while (objectsToRemove.length > 0)
|
|
@@ -149,6 +151,23 @@ class S3 extends Provider_1.Provider {
|
|
|
149
151
|
}));
|
|
150
152
|
await this.client.send(new client_s3_1.DeleteObjectCommand({ Bucket: this.bucket, Key: from }));
|
|
151
153
|
}
|
|
154
|
+
async moveDir(from, to) {
|
|
155
|
+
const objects = await this.listObjects(from);
|
|
156
|
+
await Promise.all(objects.map(async ({ Key }) => {
|
|
157
|
+
const ent = node_path_1.posix.basename(Key);
|
|
158
|
+
const source = node_path_1.posix.join(from, ent);
|
|
159
|
+
const target = node_path_1.posix.join(to, ent);
|
|
160
|
+
return this.move(source, target);
|
|
161
|
+
}));
|
|
162
|
+
}
|
|
163
|
+
async listObjects(Prefix) {
|
|
164
|
+
const { client, bucket: Bucket } = this;
|
|
165
|
+
const objects = [];
|
|
166
|
+
for await (const page of (0, client_s3_1.paginateListObjectsV2)({ client }, { Bucket, Prefix }))
|
|
167
|
+
for (const { Key } of page.Contents ?? [])
|
|
168
|
+
objects.push({ Key });
|
|
169
|
+
return objects;
|
|
170
|
+
}
|
|
152
171
|
}
|
|
153
172
|
exports.S3 = S3;
|
|
154
173
|
//# sourceMappingURL=S3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,6CAAkC;AAClC,2CAAsC;AACtC,8DAAgC;AAChC,sDAA6C;AAC7C,kDAY2B;AAC3B,0EAA2D;AAC3D,0CAAiF;AAYjF,MAAa,EAAG,SAAQ,mBAAmB;IAClC,MAAM,CAAmB,OAAO,GAA8B;QACnE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE;QACzC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE;KAC9C,CAAA;IAEkB,MAAM,CAAQ;IACd,MAAM,CAAU;IAEnC,YAAoB,OAAkB,EAAE,OAAmB;QACzD,KAAK,CAAC,OAAO,CAAC,CAAA;QAEd,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAE5B,MAAM,QAAQ,GAAuB;YACnC,SAAS,EAAE,UAAU;YACrB,GAAG,eAAe;SACnB,CAAA;QAED,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAChE,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAElE,IAAI,OAAO,OAAO,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;YAC/C,qBAAM,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS,EAC/C,4DAA4D,CAAC,CAAA;YAE/D,QAAQ,CAAC,WAAW,GAAG;gBACrB,WAAW,EAAE,OAAO,CAAC,aAAa;gBAClC,eAAe,EAAE,OAAO,CAAC,iBAAiB;aAC3C,CAAA;QACH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,oBAAQ,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACjE,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAC7D,wBAAwB;
|
|
1
|
+
{"version":3,"file":"S3.js","sourceRoot":"","sources":["../../source/providers/S3.ts"],"names":[],"mappings":"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"}
|