pangea-server 3.3.37 → 3.3.39
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.
|
@@ -2,18 +2,20 @@ type GeneralUploadParamsConfig = {
|
|
|
2
2
|
folder: string;
|
|
3
3
|
fileType: string;
|
|
4
4
|
};
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
5
|
+
export declare abstract class File {
|
|
6
|
+
UploadImage(image: UploadableImage, folder: string, previousFile?: string | null): Promise<string>;
|
|
7
|
+
UploadImages(images: UploadableImage[], folder: string): Promise<string[]>;
|
|
8
|
+
UploadVideo(file: MulterFile, folder: string): Promise<string>;
|
|
9
|
+
UploadVideos(files: MulterFile[], folder: string): Promise<string[]>;
|
|
10
|
+
GenerateUploadUrl(config: GeneralUploadParamsConfig): Promise<{
|
|
11
|
+
url: string;
|
|
12
|
+
fileName: string;
|
|
13
|
+
}>;
|
|
14
|
+
GenerateUploadUrls(folder: string, fileTypes: string[]): Promise<{
|
|
15
|
+
url: string;
|
|
16
|
+
fileName: string;
|
|
17
|
+
}[]>;
|
|
18
|
+
DeleteFile(fileName: string): Promise<void>;
|
|
19
|
+
DeleteFiles(fileNames: string[]): Promise<void[]>;
|
|
20
|
+
}
|
|
19
21
|
export {};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.File = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
@@ -19,52 +19,47 @@ const s3 = new aws_sdk_1.default.S3({
|
|
|
19
19
|
accessKeyId: (0, env_helpers_1.getEnvStr)('DIGITAL_OCEAN_SPACES_ACCESS_KEY'),
|
|
20
20
|
secretAccessKey: (0, env_helpers_1.getEnvStr)('DIGITAL_OCEAN_SPACES_SECRET_KEY'),
|
|
21
21
|
});
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
exports.uploadImage = uploadImage;
|
|
31
|
-
function uploadImages(images, folder) {
|
|
32
|
-
return Promise.all(images.map((image) => uploadImage(image, folder)));
|
|
33
|
-
}
|
|
34
|
-
exports.uploadImages = uploadImages;
|
|
35
|
-
async function uploadVideo(file, folder) {
|
|
36
|
-
const stream = fs_1.default.createReadStream(file.path);
|
|
37
|
-
try {
|
|
38
|
-
return await uploadFile(stream, { folder, fileType: file.mimetype });
|
|
22
|
+
class File {
|
|
23
|
+
async UploadImage(image, folder, previousFile) {
|
|
24
|
+
if (previousFile)
|
|
25
|
+
await this.DeleteFile(previousFile);
|
|
26
|
+
const isString = typeof image === 'string';
|
|
27
|
+
const buffer = isString ? await promises_1.default.readFile(path_1.default.join(process.cwd(), image)) : image.buffer;
|
|
28
|
+
const fileType = isString ? 'image/png' : image.mimetype;
|
|
29
|
+
return uploadFile(buffer, { folder, fileType });
|
|
39
30
|
}
|
|
40
|
-
|
|
41
|
-
|
|
31
|
+
UploadImages(images, folder) {
|
|
32
|
+
return Promise.all(images.map((image) => this.UploadImage(image, folder)));
|
|
33
|
+
}
|
|
34
|
+
async UploadVideo(file, folder) {
|
|
35
|
+
const stream = fs_1.default.createReadStream(file.path);
|
|
36
|
+
try {
|
|
37
|
+
return await uploadFile(stream, { folder, fileType: file.mimetype });
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
promises_1.default.unlink(file.path);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
UploadVideos(files, folder) {
|
|
44
|
+
return Promise.all(files.map((file) => this.UploadVideo(file, folder)));
|
|
45
|
+
}
|
|
46
|
+
async GenerateUploadUrl(config) {
|
|
47
|
+
const params = { ...getGeneralUploadParams(config), Expires: 60 };
|
|
48
|
+
const url = await s3.getSignedUrlPromise('putObject', params);
|
|
49
|
+
return { url, fileName: params.Key };
|
|
50
|
+
}
|
|
51
|
+
async GenerateUploadUrls(folder, fileTypes) {
|
|
52
|
+
return Promise.all(fileTypes.map((fileType) => this.GenerateUploadUrl({ folder, fileType })));
|
|
53
|
+
}
|
|
54
|
+
async DeleteFile(fileName) {
|
|
55
|
+
await s3.deleteObject({ Bucket: bucketName, Key: fileName }).promise();
|
|
56
|
+
(0, print_helpers_1.printInfo)('file', `file deleted from ${fileName}`);
|
|
57
|
+
}
|
|
58
|
+
DeleteFiles(fileNames) {
|
|
59
|
+
return Promise.all(fileNames.map((fileName) => this.DeleteFile(fileName)));
|
|
42
60
|
}
|
|
43
61
|
}
|
|
44
|
-
exports.
|
|
45
|
-
function uploadVideos(files, folder) {
|
|
46
|
-
return Promise.all(files.map((file) => uploadVideo(file, folder)));
|
|
47
|
-
}
|
|
48
|
-
exports.uploadVideos = uploadVideos;
|
|
49
|
-
async function generateUploadUrl(config) {
|
|
50
|
-
const params = { ...getGeneralUploadParams(config), Expires: 60 };
|
|
51
|
-
const url = await s3.getSignedUrlPromise('putObject', params);
|
|
52
|
-
return { url, fileName: params.Key };
|
|
53
|
-
}
|
|
54
|
-
exports.generateUploadUrl = generateUploadUrl;
|
|
55
|
-
async function generateUploadUrls(folder, fileTypes) {
|
|
56
|
-
return Promise.all(fileTypes.map((fileType) => generateUploadUrl({ folder, fileType })));
|
|
57
|
-
}
|
|
58
|
-
exports.generateUploadUrls = generateUploadUrls;
|
|
59
|
-
async function deleteFile(fileName) {
|
|
60
|
-
await s3.deleteObject({ Bucket: bucketName, Key: fileName }).promise();
|
|
61
|
-
(0, print_helpers_1.printInfo)('file', `file deleted from ${fileName}`);
|
|
62
|
-
}
|
|
63
|
-
exports.deleteFile = deleteFile;
|
|
64
|
-
function deleteFiles(fileNames) {
|
|
65
|
-
return Promise.all(fileNames.map((fileName) => deleteFile(fileName)));
|
|
66
|
-
}
|
|
67
|
-
exports.deleteFiles = deleteFiles;
|
|
62
|
+
exports.File = File;
|
|
68
63
|
// internal functions
|
|
69
64
|
function getGeneralUploadParams(config) {
|
|
70
65
|
const fileName = `${config.folder}/${(0, random_helpers_1.getRandomString)('short')}`;
|