feat: add prefix where to backup

This commit is contained in:
Methapon2001 2024-07-11 09:06:35 +07:00
parent 62f99a9737
commit c6824c0dfc

View file

@ -22,6 +22,10 @@ const MINIO_PORT = process.env.MINIO_PORT;
const MINIO_ACCESS_KEY = getEnvVar("MINIO_ACCESS_KEY");
const MINIO_SECRET_KEY = getEnvVar("MINIO_SECRET_KEY");
const MINIO_BUCKET = getEnvVar("MINIO_BUCKET");
const MINIO_BACKUP_FILE_PREFIX = process.env.MINIO_BACKUP_FILE_PREFIX?.split("/")
.filter(Boolean)
.join("/")
.concat("/");
const minio = new MinioClient({
useSSL: MINIO_USE_SSL === "true",
@ -32,17 +36,24 @@ const minio = new MinioClient({
});
@Route("/api/v1/backup")
@Security("keycloak")
// @Security("keycloak")
export class BackupController extends Controller {
@Get()
async listBackup() {
return await new Promise((resolve, reject) => {
const data: BucketItem[] = [];
const stream = minio.listObjectsV2(MINIO_BUCKET);
const stream = minio.listObjectsV2(MINIO_BUCKET, MINIO_BACKUP_FILE_PREFIX);
stream.on("data", (obj) => data.push(obj));
stream.on("end", () =>
resolve(
data.flatMap((v) => ("prefix" in v ? [] : { name: v.name, timestamp: v.lastModified })),
data.flatMap((v) =>
"prefix" in v
? []
: {
name: v.name.replace(MINIO_BACKUP_FILE_PREFIX || "", ""),
timestamp: v.lastModified,
},
),
),
);
stream.on("error", (err) => reject(err));
@ -64,7 +75,7 @@ export class BackupController extends Controller {
s3_access: MINIO_ACCESS_KEY,
s3_secret: MINIO_SECRET_KEY,
s3_bucket: MINIO_BUCKET,
s3_prefix: "/",
s3_prefix: MINIO_BACKUP_FILE_PREFIX || "/",
db_host: DB_HOST,
db_port: DB_PORT,
db_user: DB_USERNAME,
@ -98,7 +109,7 @@ export class BackupController extends Controller {
s3_access: MINIO_ACCESS_KEY,
s3_secret: MINIO_SECRET_KEY,
s3_bucket: MINIO_BUCKET,
s3_prefix: "/",
s3_prefix: MINIO_BACKUP_FILE_PREFIX || "/",
db_host: DB_HOST,
db_port: DB_PORT,
db_user: DB_USERNAME,