@zola_do/seaweed 0.3.6 → 0.3.7
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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildContentDispositionAttachment(filename: string | undefined): string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildContentDispositionAttachment = buildContentDispositionAttachment;
|
|
4
|
+
const sanitizeFilename = (filename) => {
|
|
5
|
+
const cleaned = String(filename !== null && filename !== void 0 ? filename : 'download')
|
|
6
|
+
.replace(/[\r\n\x00-\x1f]/g, '')
|
|
7
|
+
.replace(/[/\\]/g, '_')
|
|
8
|
+
.trim();
|
|
9
|
+
return cleaned || 'download';
|
|
10
|
+
};
|
|
11
|
+
function buildContentDispositionAttachment(filename) {
|
|
12
|
+
const safe = sanitizeFilename(filename);
|
|
13
|
+
const asciiFallback = safe
|
|
14
|
+
.replace(/[^\x20-\x7E]/g, '_')
|
|
15
|
+
.replace(/["\\]/g, '_')
|
|
16
|
+
.trim() || 'download';
|
|
17
|
+
return `attachment; filename="${asciiFallback}"; filename*=UTF-8''${encodeURIComponent(safe)}`;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=content-disposition.helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-disposition.helper.js","sourceRoot":"","sources":["../src/content-disposition.helper.ts"],"names":[],"mappings":";;;AAAA,MAAM,gBAAgB,GAAG,CAAC,QAA4B,EAAU,EAAE;IAChE,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,UAAU,CAAC;SAC3C,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;SAC/B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,CAAC;IAEV,OAAO,OAAO,IAAI,UAAU,CAAC;AAC/B,CAAC,CAAC;AAGF,2CACE,QAA4B;IAE5B,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI;SACvB,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;SAC7B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,IAAI,EAAE,IAAI,UAAU,CAAC;IAExB,OAAO,yBAAyB,aAAa,uBAAuB,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -14,6 +14,7 @@ const common_1 = require("@nestjs/common");
|
|
|
14
14
|
const types_1 = require("../types");
|
|
15
15
|
const crypto_1 = require("crypto");
|
|
16
16
|
const path_1 = require("path");
|
|
17
|
+
const content_disposition_helper_1 = require("../content-disposition.helper");
|
|
17
18
|
let StorageService = class StorageService {
|
|
18
19
|
constructor(s3) {
|
|
19
20
|
this.s3 = s3;
|
|
@@ -33,7 +34,7 @@ let StorageService = class StorageService {
|
|
|
33
34
|
var _a;
|
|
34
35
|
const result = await this.s3.getObject(fileInfo.bucketName, fileInfo.filepath);
|
|
35
36
|
response.setHeader('Content-Type', fileInfo.contentType);
|
|
36
|
-
response.setHeader('Content-Disposition',
|
|
37
|
+
response.setHeader('Content-Disposition', (0, content_disposition_helper_1.buildContentDispositionAttachment)((_a = fileInfo.originalname) !== null && _a !== void 0 ? _a : fileInfo.filepath));
|
|
37
38
|
return response.send(result);
|
|
38
39
|
}
|
|
39
40
|
async generatePresignedDownloadUrl(fileInfo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,oCAAwC;AACxC,mCAAoC;AACpC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"storage.service.js","sourceRoot":"","sources":["../../src/services/storage.service.ts"],"names":[],"mappings":"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"}
|