@peacom/core 0.0.91 → 0.0.92
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
CHANGED
@@ -8,10 +8,30 @@ interface FileProp {
|
|
8
8
|
contentType: string;
|
9
9
|
}
|
10
10
|
export declare const createPreSignedUrl: ({ fileName, contentType }: FileProp) => Promise<string>;
|
11
|
+
export declare const getS3UrlKey: (url: string) => string;
|
11
12
|
export declare const getUrlInfo: (str: string) => Promise<FileInfo>;
|
12
13
|
export declare const uploadS3FromUrl: ({ url, mimeType, name }: {
|
13
14
|
url?: string | undefined;
|
14
15
|
mimeType?: string | undefined;
|
15
16
|
name?: string | undefined;
|
16
17
|
}, folder?: string) => Promise<FileInfo>;
|
18
|
+
interface GetObjectRangeProp {
|
19
|
+
bucket: string;
|
20
|
+
key: string;
|
21
|
+
start: number;
|
22
|
+
end: number;
|
23
|
+
}
|
24
|
+
interface DownloadLargeFileProps {
|
25
|
+
url: string;
|
26
|
+
outputFile: string;
|
27
|
+
chunkSize: number;
|
28
|
+
onError?(err: Error): void;
|
29
|
+
}
|
30
|
+
export declare const getObjectRange: ({ bucket, key, start, end }: GetObjectRangeProp) => Promise<import("@aws-sdk/client-s3").GetObjectCommandOutput>;
|
31
|
+
export declare const getRangeAndLength: (contentRange: string) => {
|
32
|
+
start: number;
|
33
|
+
end: number;
|
34
|
+
length: number;
|
35
|
+
};
|
36
|
+
export declare const downloadS3Url: ({ url, outputFile, onError, chunkSize }: DownloadLargeFileProps) => Promise<void>;
|
17
37
|
export {};
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.uploadS3FromUrl = exports.getUrlInfo = exports.createPreSignedUrl = exports.uploadLocalFileToS3 = exports.getS3Url = void 0;
|
3
|
+
exports.downloadS3Url = exports.getRangeAndLength = exports.getObjectRange = exports.uploadS3FromUrl = exports.getUrlInfo = exports.getS3UrlKey = exports.createPreSignedUrl = exports.uploadLocalFileToS3 = exports.getS3Url = void 0;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const fs = require("fs");
|
6
6
|
const path = require("path");
|
@@ -45,10 +45,14 @@ const createPreSignedUrl = ({ fileName, contentType }) => {
|
|
45
45
|
return (0, s3_request_presigner_1.getSignedUrl)(constants_1.s3, command, { expiresIn: 3600 });
|
46
46
|
};
|
47
47
|
exports.createPreSignedUrl = createPreSignedUrl;
|
48
|
+
const getS3UrlKey = (url) => {
|
49
|
+
return (0, util_1.rightString)(url, url.length -
|
50
|
+
`https://${constants_1.S3_INFO.BUCKET}.s3.${constants_1.S3_OPTION.region}.amazonaws.com/`.length);
|
51
|
+
};
|
52
|
+
exports.getS3UrlKey = getS3UrlKey;
|
48
53
|
const getUrlInfo = (str) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
49
54
|
const fileInfo = (0, util_1.getFileInfoFromUrl)(str);
|
50
|
-
const key = (0,
|
51
|
-
`https://${constants_1.S3_INFO.BUCKET}.s3.${constants_1.S3_OPTION.region}.amazonaws.com/`.length);
|
55
|
+
const key = (0, exports.getS3UrlKey)(str);
|
52
56
|
const input = {
|
53
57
|
// GetObjectRequest
|
54
58
|
Bucket: constants_1.S3_INFO.BUCKET,
|
@@ -84,4 +88,55 @@ const uploadS3FromUrl = ({ url = "", mimeType = "", name = "" }, folder = consta
|
|
84
88
|
return Object.assign(Object.assign({}, fileInfo), { url: uploadUrl });
|
85
89
|
});
|
86
90
|
exports.uploadS3FromUrl = uploadS3FromUrl;
|
91
|
+
const isComplete = ({ end, length }) => end === length - 1;
|
92
|
+
const getObjectRange = ({ bucket, key, start, end }) => {
|
93
|
+
const command = new client_s3_1.GetObjectCommand({
|
94
|
+
Bucket: bucket,
|
95
|
+
Key: key,
|
96
|
+
Range: `bytes=${start}-${end}`,
|
97
|
+
});
|
98
|
+
return constants_1.s3.send(command);
|
99
|
+
};
|
100
|
+
exports.getObjectRange = getObjectRange;
|
101
|
+
const getRangeAndLength = (contentRange) => {
|
102
|
+
const [range, length] = contentRange.split("/");
|
103
|
+
const [start, end] = range.split("-");
|
104
|
+
return {
|
105
|
+
start: parseInt(start),
|
106
|
+
end: parseInt(end),
|
107
|
+
length: parseInt(length),
|
108
|
+
};
|
109
|
+
};
|
110
|
+
exports.getRangeAndLength = getRangeAndLength;
|
111
|
+
const downloadS3Url = ({ url, outputFile, onError, chunkSize }) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
112
|
+
const key = (0, exports.getS3UrlKey)(url);
|
113
|
+
const writeStream = fs.createWriteStream(outputFile).on("error", (err) => {
|
114
|
+
if (onError) {
|
115
|
+
onError(err);
|
116
|
+
}
|
117
|
+
});
|
118
|
+
let rangeAndLength = { start: -1, end: -1, length: -1 };
|
119
|
+
try {
|
120
|
+
while (!isComplete(rangeAndLength)) {
|
121
|
+
const { end } = rangeAndLength;
|
122
|
+
const nextRange = { start: end + 1, end: end + chunkSize };
|
123
|
+
console.log(`Downloading bytes ${nextRange.start} to ${nextRange.end}`);
|
124
|
+
const { ContentRange, Body } = yield (0, exports.getObjectRange)(Object.assign({ bucket: constants_1.S3_INFO.BUCKET, key }, nextRange));
|
125
|
+
if (Body) {
|
126
|
+
writeStream.write(yield Body.transformToByteArray());
|
127
|
+
}
|
128
|
+
rangeAndLength = (0, exports.getRangeAndLength)(ContentRange || '');
|
129
|
+
}
|
130
|
+
}
|
131
|
+
catch (e) {
|
132
|
+
try {
|
133
|
+
fs.unlinkSync(outputFile);
|
134
|
+
}
|
135
|
+
catch (e2) {
|
136
|
+
console.log(e2.message);
|
137
|
+
}
|
138
|
+
throw e;
|
139
|
+
}
|
140
|
+
});
|
141
|
+
exports.downloadS3Url = downloadS3Url;
|
87
142
|
//# sourceMappingURL=s3.service.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../../../../../../packages/core/src/lib/service/storage/aws/s3.service.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,
|
1
|
+
{"version":3,"file":"s3.service.js","sourceRoot":"","sources":["../../../../../../../../packages/core/src/lib/service/storage/aws/s3.service.ts"],"names":[],"mappings":";;;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,kDAA+G;AAC/G,wEAA2D;AAC3D,+BAAkC;AAClC,2CAA+D;AAC/D,wCAAiG;AAG1F,MAAM,QAAQ,GAAG,CAAC,GAA8B,EAAE,EAAE,CAAC,WAAW,mBAAO,CAAC,MAAM,OAAO,qBAAS,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAA;AAAtH,QAAA,QAAQ,YAA8G;AAE5H,MAAM,mBAAmB,GAAG,CACjC,EAAC,QAAQ,GAAG,EAAE,EAAC,EACf,MAAM,GAAG,sBAAU,CAAC,OAAO,EACR,EAAE;IACrB,MAAM,EAAE,GAAG,IAAA,+BAAwB,EAAC,QAAQ,CAAC,CAAA;IAC7C,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEjD,kCAAkC;IAClC,MAAM,MAAM,GAA0B;QACpC,MAAM,EAAE,mBAAO,CAAC,MAAM;QACtB,GAAG,EAAE,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAC3C,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,EAAE,CAAC,IAAI;QACpB,aAAa,EAAE,EAAE,CAAC,IAAI;KACvB,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C;;;;;;OAMG;IACH,MAAM,cAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvB,uCACK,EAAE,KACL,GAAG,EAAE,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,IAC1B;AACH,CAAC,CAAA,CAAC;AA9BW,QAAA,mBAAmB,uBA8B9B;AAQK,MAAM,kBAAkB,GAAG,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAW,EAAE,EAAE;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,GAAG,sBAAU,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CACxD,YAAY,EACZ,EAAE,CACH,IAAI,IAAA,SAAM,GAAE,IAAI,IAAI,EAAE,CAAC;IACxB,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;QACnC,MAAM,EAAE,mBAAO,CAAC,MAAM;QACtB,GAAG,EAAE,QAAQ;QACb,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;IACH,OAAO,IAAA,mCAAY,EAAC,cAAE,EAAE,OAAO,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;AACtD,CAAC,CAAC;AAZW,QAAA,kBAAkB,sBAY7B;AAEK,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IACzC,OAAO,IAAA,kBAAW,EAChB,GAAG,EACH,GAAG,CAAC,MAAM;QACV,WAAW,mBAAO,CAAC,MAAM,OAAO,qBAAS,CAAC,MAAM,iBAAiB,CAAC,MAAM,CACzE,CAAA;AACH,CAAC,CAAA;AANY,QAAA,WAAW,eAMvB;AAEM,MAAM,UAAU,GAAG,CAAO,GAAW,EAAqB,EAAE;IACjE,MAAM,QAAQ,GAAG,IAAA,yBAAkB,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,MAAM,EAAE,mBAAO,CAAC,MAAM;QACtB,GAAG,EAAE,GAAG;KACT,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,MAAM,cAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,uCACK,QAAQ,KACX,IAAI,EAAE,IAAI,CAAC,aAAa,EACxB,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,IAAI,IACvC;AACJ,CAAC,CAAA,CAAC;AAfW,QAAA,UAAU,cAerB;AAMF,MAAM,cAAc,GAAG,CACrB,EAAC,QAAQ,GAAG,EAAE,EAAE,WAAW,GAAG,0BAA0B,EAAE,IAAI,EAAqB,EACnF,MAAM,GAAG,sBAAU,CAAC,MAAM,EACT,EAAE;IACnB,kCAAkC;IAClC,MAAM,MAAM,GAA0B;QACpC,MAAM,EAAE,mBAAO,CAAC,MAAM;QACtB,GAAG,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;QAC5B,IAAI,EAAE,IAAI;KACX,CAAC;IACF,IAAI,IAAA,cAAO,EAAC,WAAW,CAAC,EAAE;QACxB,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;KAClC;IAED,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,cAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,OAAO,IAAA,gBAAQ,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAA,CAAC;AAEK,MAAM,eAAe,GAAG,CAC7B,EAAC,GAAG,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAC,EACpC,MAAM,GAAG,sBAAU,CAAC,OAAO,EACR,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;IACxD,MAAM,QAAQ,GAAG,IAAA,yBAAkB,EAAC,GAAG,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,cAAc,CACpC;QACE,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI;QAC/B,WAAW,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;QACtC,IAAI,EAAE,IAAkB;KACzB,EACD,MAAM,CACP,CAAC;IACF,uCACK,QAAQ,KACX,GAAG,EAAE,SAAS,IACf;AACH,CAAC,CAAA,CAAC;AAlBW,QAAA,eAAe,mBAkB1B;AAEF,MAAM,UAAU,GAAG,CAAC,EAAC,GAAG,EAAE,MAAM,EAAkC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,GAAG,CAAC,CAAC;AAiBnF,MAAM,cAAc,GAAG,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAqB,EAAE,EAAE;IAC9E,MAAM,OAAO,GAAG,IAAI,4BAAgB,CAAC;QACnC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG;QACR,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,EAAE;KAC/B,CAAC,CAAC;IAEH,OAAO,cAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,CAAC,CAAC;AARW,QAAA,cAAc,kBAQzB;AAEK,MAAM,iBAAiB,GAAG,CAAC,YAAoB,EAAE,EAAE;IACxD,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;QACtB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;QAClB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;KACzB,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AAEK,MAAM,aAAa,GAAG,CAAO,EAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAyB,EAAE,EAAE;IACnG,MAAM,GAAG,GAAG,IAAA,mBAAW,EAAC,GAAG,CAAC,CAAA;IAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,CACtC,UAAU,CACX,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACpB,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,CAAA;SACb;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,GAAG,EAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAC,CAAC;IACtD,IAAI;QACF,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YAClC,MAAM,EAAC,GAAG,EAAC,GAAG,cAAc,CAAC;YAC7B,MAAM,SAAS,GAAG,EAAC,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,SAAS,EAAC,CAAC;YAEzD,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,CAAC,KAAK,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAExE,MAAM,EAAC,YAAY,EAAE,IAAI,EAAC,GAAG,MAAM,IAAA,sBAAc,kBAC/C,MAAM,EAAE,mBAAO,CAAC,MAAM,EACtB,GAAG,IACA,SAAS,EACZ,CAAC;YAEH,IAAI,IAAI,EAAE;gBACR,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;aACtD;YAED,cAAc,GAAG,IAAA,yBAAiB,EAAC,YAAY,IAAI,EAAE,CAAC,CAAC;SACxD;KACF;IAAC,OAAO,CAAC,EAAE;QACV,IAAI;YACF,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;SAC1B;QAAC,OAAO,EAAO,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;SACxB;QAED,MAAM,CAAC,CAAA;KACR;AACH,CAAC,CAAA,CAAA;AAvCY,QAAA,aAAa,iBAuCzB"}
|