49 lines
1.1 KiB
JavaScript
49 lines
1.1 KiB
JavaScript
const s3Storage = require("./s3Storage");
|
|
|
|
const PDF_PREFIX = "uploads/pdf";
|
|
const BOOK_SLIDE_PREFIX = "uploads/books";
|
|
|
|
const uploadPdf = async (fileData, fileName) => {
|
|
const key = `${PDF_PREFIX}/${fileName}`;
|
|
await s3Storage.uploadBuffer(key, fileData, "application/pdf");
|
|
return {
|
|
fileName,
|
|
url: s3Storage.getPublicUrl(key),
|
|
};
|
|
};
|
|
|
|
const uploadBookSlide = async (buffer, imageName) => {
|
|
const key = `${BOOK_SLIDE_PREFIX}/${imageName}.jpeg`;
|
|
await s3Storage.uploadBuffer(key, buffer, "image/jpeg");
|
|
return s3Storage.getPublicUrl(key);
|
|
};
|
|
|
|
const deletePdf = async (fileName) => {
|
|
if (!fileName) return;
|
|
|
|
try {
|
|
await s3Storage.deleteObject(`${PDF_PREFIX}/${fileName}`);
|
|
} catch (error) {
|
|
console.log("Failed to delete PDF from S3:", error?.message);
|
|
}
|
|
};
|
|
|
|
const deleteBookSlide = async (imageName) => {
|
|
if (!imageName) return;
|
|
|
|
try {
|
|
await s3Storage.deleteObject(`${BOOK_SLIDE_PREFIX}/${imageName}.jpeg`);
|
|
} catch (error) {
|
|
console.log("Failed to delete book slide from S3:", error?.message);
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
PDF_PREFIX,
|
|
BOOK_SLIDE_PREFIX,
|
|
uploadPdf,
|
|
uploadBookSlide,
|
|
deletePdf,
|
|
deleteBookSlide,
|
|
};
|