34 lines
757 B
JavaScript
34 lines
757 B
JavaScript
const s3Storage = require("./s3Storage");
|
|
|
|
const BACKUP_PREFIX = "backup";
|
|
const UPLOADS_PREFIX = "uploads";
|
|
|
|
const appendS3UploadsToArchive = async (archive) => {
|
|
const keys = await s3Storage.listObjects(UPLOADS_PREFIX);
|
|
|
|
for (const key of keys) {
|
|
const buffer = await s3Storage.getObjectBuffer(key);
|
|
archive.append(buffer, { name: key });
|
|
}
|
|
};
|
|
|
|
const uploadBackupArchive = async (buffer, fileName) => {
|
|
await s3Storage.uploadBuffer(
|
|
`${BACKUP_PREFIX}/${fileName}`,
|
|
buffer,
|
|
"application/zip"
|
|
);
|
|
};
|
|
|
|
const deleteOldBackups = async () => {
|
|
await s3Storage.deleteObjectsByPrefix(BACKUP_PREFIX);
|
|
};
|
|
|
|
module.exports = {
|
|
BACKUP_PREFIX,
|
|
UPLOADS_PREFIX,
|
|
appendS3UploadsToArchive,
|
|
uploadBackupArchive,
|
|
deleteOldBackups,
|
|
};
|