@webiny/api-file-manager-s3 5.39.2 → 5.39.3-beta.0
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.
|
@@ -6,8 +6,10 @@ interface CompleteMultiPartUploadParams {
|
|
|
6
6
|
export declare class CompleteMultiPartUploadUseCase {
|
|
7
7
|
private readonly s3;
|
|
8
8
|
private readonly bucket;
|
|
9
|
+
private readonly emptyMarkerValues;
|
|
9
10
|
constructor(bucket: string, s3Client: S3);
|
|
10
11
|
execute(params: CompleteMultiPartUploadParams): Promise<void>;
|
|
11
12
|
private getAllUploadParts;
|
|
13
|
+
private isMarkerEmpty;
|
|
12
14
|
}
|
|
13
15
|
export {};
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.CompleteMultiPartUploadUseCase = void 0;
|
|
7
7
|
var _clientS = require("@webiny/aws-sdk/client-s3");
|
|
8
8
|
class CompleteMultiPartUploadUseCase {
|
|
9
|
+
emptyMarkerValues = [undefined, "0"];
|
|
9
10
|
constructor(bucket, s3Client) {
|
|
10
11
|
this.bucket = bucket;
|
|
11
12
|
this.s3 = s3Client;
|
|
@@ -23,17 +24,13 @@ class CompleteMultiPartUploadUseCase {
|
|
|
23
24
|
Parts: allParts
|
|
24
25
|
}
|
|
25
26
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
console.log(data);
|
|
34
|
-
resolve();
|
|
35
|
-
});
|
|
36
|
-
});
|
|
27
|
+
try {
|
|
28
|
+
const command = new _clientS.CompleteMultipartUploadCommand(s3Params);
|
|
29
|
+
await this.s3.send(command);
|
|
30
|
+
} catch (err) {
|
|
31
|
+
console.error(err);
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
37
34
|
}
|
|
38
35
|
async getAllUploadParts(params) {
|
|
39
36
|
const parts = [];
|
|
@@ -50,7 +47,7 @@ class CompleteMultiPartUploadUseCase {
|
|
|
50
47
|
Parts.forEach(part => parts.push(part));
|
|
51
48
|
}
|
|
52
49
|
marker = PartNumberMarker || undefined;
|
|
53
|
-
if (
|
|
50
|
+
if (this.isMarkerEmpty(marker)) {
|
|
54
51
|
break;
|
|
55
52
|
}
|
|
56
53
|
}
|
|
@@ -59,6 +56,9 @@ class CompleteMultiPartUploadUseCase {
|
|
|
59
56
|
PartNumber: part.PartNumber
|
|
60
57
|
}));
|
|
61
58
|
}
|
|
59
|
+
isMarkerEmpty(marker) {
|
|
60
|
+
return this.emptyMarkerValues.includes(marker);
|
|
61
|
+
}
|
|
62
62
|
}
|
|
63
63
|
exports.CompleteMultiPartUploadUseCase = CompleteMultiPartUploadUseCase;
|
|
64
64
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clientS","require","CompleteMultiPartUploadUseCase","constructor","bucket","s3Client","s3","execute","params","uploadParams","Bucket","Key","fileKey","UploadId","uploadId","allParts","getAllUploadParts","s3Params","MultipartUpload","Parts","
|
|
1
|
+
{"version":3,"names":["_clientS","require","CompleteMultiPartUploadUseCase","emptyMarkerValues","undefined","constructor","bucket","s3Client","s3","execute","params","uploadParams","Bucket","Key","fileKey","UploadId","uploadId","allParts","getAllUploadParts","s3Params","MultipartUpload","Parts","command","CompleteMultipartUploadCommand","send","err","console","error","parts","marker","PartNumberMarker","ListPartsCommand","forEach","part","push","isMarkerEmpty","map","ETag","PartNumber","includes","exports"],"sources":["CompleteMultiPartUploadUseCase.ts"],"sourcesContent":["import {\n S3,\n Part,\n ListPartsOutput,\n ListPartsCommand,\n CompleteMultipartUploadCommand\n} from \"@webiny/aws-sdk/client-s3\";\n\ninterface CompleteMultiPartUploadParams {\n fileKey: string;\n uploadId: string;\n}\n\ninterface GetAllUploadPartsParams {\n Bucket: string;\n Key: string;\n UploadId: string;\n}\n\nexport class CompleteMultiPartUploadUseCase {\n private readonly s3: S3;\n private readonly bucket: string;\n private readonly emptyMarkerValues = [undefined, \"0\"];\n\n constructor(bucket: string, s3Client: S3) {\n this.bucket = bucket;\n this.s3 = s3Client;\n }\n\n async execute(params: CompleteMultiPartUploadParams) {\n const uploadParams = {\n Bucket: this.bucket,\n Key: params.fileKey,\n UploadId: params.uploadId\n };\n\n const allParts = await this.getAllUploadParts(uploadParams);\n\n const s3Params = {\n ...uploadParams,\n MultipartUpload: {\n Parts: allParts\n }\n };\n\n try {\n const command = new CompleteMultipartUploadCommand(s3Params);\n await this.s3.send(command);\n } catch (err) {\n console.error(err);\n throw err;\n }\n }\n\n private async getAllUploadParts(params: GetAllUploadPartsParams) {\n const parts: Part[] = [];\n\n let marker: string | undefined = undefined;\n while (true) {\n const { Parts, PartNumberMarker }: ListPartsOutput = await this.s3.send(\n new ListPartsCommand({\n ...params,\n PartNumberMarker: marker\n })\n );\n\n if (Parts) {\n Parts.forEach(part => parts.push(part));\n }\n\n marker = PartNumberMarker || undefined;\n if (this.isMarkerEmpty(marker)) {\n break;\n }\n }\n\n return parts.map(part => ({\n ETag: part.ETag as string,\n PartNumber: part.PartNumber as number\n }));\n }\n\n private isMarkerEmpty(marker: string | undefined) {\n return this.emptyMarkerValues.includes(marker);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAmBO,MAAMC,8BAA8B,CAAC;EAGvBC,iBAAiB,GAAG,CAACC,SAAS,EAAE,GAAG,CAAC;EAErDC,WAAWA,CAACC,MAAc,EAAEC,QAAY,EAAE;IACtC,IAAI,CAACD,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACE,EAAE,GAAGD,QAAQ;EACtB;EAEA,MAAME,OAAOA,CAACC,MAAqC,EAAE;IACjD,MAAMC,YAAY,GAAG;MACjBC,MAAM,EAAE,IAAI,CAACN,MAAM;MACnBO,GAAG,EAAEH,MAAM,CAACI,OAAO;MACnBC,QAAQ,EAAEL,MAAM,CAACM;IACrB,CAAC;IAED,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAACC,iBAAiB,CAACP,YAAY,CAAC;IAE3D,MAAMQ,QAAQ,GAAG;MACb,GAAGR,YAAY;MACfS,eAAe,EAAE;QACbC,KAAK,EAAEJ;MACX;IACJ,CAAC;IAED,IAAI;MACA,MAAMK,OAAO,GAAG,IAAIC,uCAA8B,CAACJ,QAAQ,CAAC;MAC5D,MAAM,IAAI,CAACX,EAAE,CAACgB,IAAI,CAACF,OAAO,CAAC;IAC/B,CAAC,CAAC,OAAOG,GAAG,EAAE;MACVC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;MAClB,MAAMA,GAAG;IACb;EACJ;EAEA,MAAcP,iBAAiBA,CAACR,MAA+B,EAAE;IAC7D,MAAMkB,KAAa,GAAG,EAAE;IAExB,IAAIC,MAA0B,GAAGzB,SAAS;IAC1C,OAAO,IAAI,EAAE;MACT,MAAM;QAAEiB,KAAK;QAAES;MAAkC,CAAC,GAAG,MAAM,IAAI,CAACtB,EAAE,CAACgB,IAAI,CACnE,IAAIO,yBAAgB,CAAC;QACjB,GAAGrB,MAAM;QACToB,gBAAgB,EAAED;MACtB,CAAC,CACL,CAAC;MAED,IAAIR,KAAK,EAAE;QACPA,KAAK,CAACW,OAAO,CAACC,IAAI,IAAIL,KAAK,CAACM,IAAI,CAACD,IAAI,CAAC,CAAC;MAC3C;MAEAJ,MAAM,GAAGC,gBAAgB,IAAI1B,SAAS;MACtC,IAAI,IAAI,CAAC+B,aAAa,CAACN,MAAM,CAAC,EAAE;QAC5B;MACJ;IACJ;IAEA,OAAOD,KAAK,CAACQ,GAAG,CAACH,IAAI,KAAK;MACtBI,IAAI,EAAEJ,IAAI,CAACI,IAAc;MACzBC,UAAU,EAAEL,IAAI,CAACK;IACrB,CAAC,CAAC,CAAC;EACP;EAEQH,aAAaA,CAACN,MAA0B,EAAE;IAC9C,OAAO,IAAI,CAAC1B,iBAAiB,CAACoC,QAAQ,CAACV,MAAM,CAAC;EAClD;AACJ;AAACW,OAAA,CAAAtC,8BAAA,GAAAA,8BAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/api-file-manager-s3",
|
|
3
|
-
"version": "5.39.
|
|
3
|
+
"version": "5.39.3-beta.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"author": "Webiny Ltd",
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@webiny/api": "5.39.
|
|
14
|
-
"@webiny/api-file-manager": "5.39.
|
|
15
|
-
"@webiny/api-security": "5.39.
|
|
16
|
-
"@webiny/aws-sdk": "5.39.
|
|
17
|
-
"@webiny/error": "5.39.
|
|
18
|
-
"@webiny/handler": "5.39.
|
|
19
|
-
"@webiny/handler-graphql": "5.39.
|
|
20
|
-
"@webiny/plugins": "5.39.
|
|
21
|
-
"@webiny/tasks": "5.39.
|
|
22
|
-
"@webiny/utils": "5.39.
|
|
23
|
-
"@webiny/validation": "5.39.
|
|
13
|
+
"@webiny/api": "5.39.3-beta.0",
|
|
14
|
+
"@webiny/api-file-manager": "5.39.3-beta.0",
|
|
15
|
+
"@webiny/api-security": "5.39.3-beta.0",
|
|
16
|
+
"@webiny/aws-sdk": "5.39.3-beta.0",
|
|
17
|
+
"@webiny/error": "5.39.3-beta.0",
|
|
18
|
+
"@webiny/handler": "5.39.3-beta.0",
|
|
19
|
+
"@webiny/handler-graphql": "5.39.3-beta.0",
|
|
20
|
+
"@webiny/plugins": "5.39.3-beta.0",
|
|
21
|
+
"@webiny/tasks": "5.39.3-beta.0",
|
|
22
|
+
"@webiny/utils": "5.39.3-beta.0",
|
|
23
|
+
"@webiny/validation": "5.39.3-beta.0",
|
|
24
24
|
"form-data": "4.0.0",
|
|
25
25
|
"mime": "3.0.0",
|
|
26
26
|
"node-fetch": "2.6.9",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@babel/cli": "7.22.6",
|
|
35
35
|
"@babel/core": "7.22.8",
|
|
36
36
|
"@types/node-fetch": "2.6.2",
|
|
37
|
-
"@webiny/cli": "5.39.
|
|
38
|
-
"@webiny/project-utils": "5.39.
|
|
37
|
+
"@webiny/cli": "5.39.3-beta.0",
|
|
38
|
+
"@webiny/project-utils": "5.39.3-beta.0",
|
|
39
39
|
"rimraf": "3.0.2",
|
|
40
40
|
"typescript": "4.7.4"
|
|
41
41
|
},
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"build": "yarn webiny run build",
|
|
48
48
|
"watch": "yarn webiny run watch"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "bb0a2c8b43b2caa88f7a2d745a88039a520d124c"
|
|
51
51
|
}
|