feat: add prefix where to backup
This commit is contained in:
parent
62f99a9737
commit
c6824c0dfc
1 changed files with 16 additions and 5 deletions
|
|
@ -22,6 +22,10 @@ const MINIO_PORT = process.env.MINIO_PORT;
|
||||||
const MINIO_ACCESS_KEY = getEnvVar("MINIO_ACCESS_KEY");
|
const MINIO_ACCESS_KEY = getEnvVar("MINIO_ACCESS_KEY");
|
||||||
const MINIO_SECRET_KEY = getEnvVar("MINIO_SECRET_KEY");
|
const MINIO_SECRET_KEY = getEnvVar("MINIO_SECRET_KEY");
|
||||||
const MINIO_BUCKET = getEnvVar("MINIO_BUCKET");
|
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({
|
const minio = new MinioClient({
|
||||||
useSSL: MINIO_USE_SSL === "true",
|
useSSL: MINIO_USE_SSL === "true",
|
||||||
|
|
@ -32,17 +36,24 @@ const minio = new MinioClient({
|
||||||
});
|
});
|
||||||
|
|
||||||
@Route("/api/v1/backup")
|
@Route("/api/v1/backup")
|
||||||
@Security("keycloak")
|
// @Security("keycloak")
|
||||||
export class BackupController extends Controller {
|
export class BackupController extends Controller {
|
||||||
@Get()
|
@Get()
|
||||||
async listBackup() {
|
async listBackup() {
|
||||||
return await new Promise((resolve, reject) => {
|
return await new Promise((resolve, reject) => {
|
||||||
const data: BucketItem[] = [];
|
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("data", (obj) => data.push(obj));
|
||||||
stream.on("end", () =>
|
stream.on("end", () =>
|
||||||
resolve(
|
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));
|
stream.on("error", (err) => reject(err));
|
||||||
|
|
@ -64,7 +75,7 @@ export class BackupController extends Controller {
|
||||||
s3_access: MINIO_ACCESS_KEY,
|
s3_access: MINIO_ACCESS_KEY,
|
||||||
s3_secret: MINIO_SECRET_KEY,
|
s3_secret: MINIO_SECRET_KEY,
|
||||||
s3_bucket: MINIO_BUCKET,
|
s3_bucket: MINIO_BUCKET,
|
||||||
s3_prefix: "/",
|
s3_prefix: MINIO_BACKUP_FILE_PREFIX || "/",
|
||||||
db_host: DB_HOST,
|
db_host: DB_HOST,
|
||||||
db_port: DB_PORT,
|
db_port: DB_PORT,
|
||||||
db_user: DB_USERNAME,
|
db_user: DB_USERNAME,
|
||||||
|
|
@ -98,7 +109,7 @@ export class BackupController extends Controller {
|
||||||
s3_access: MINIO_ACCESS_KEY,
|
s3_access: MINIO_ACCESS_KEY,
|
||||||
s3_secret: MINIO_SECRET_KEY,
|
s3_secret: MINIO_SECRET_KEY,
|
||||||
s3_bucket: MINIO_BUCKET,
|
s3_bucket: MINIO_BUCKET,
|
||||||
s3_prefix: "/",
|
s3_prefix: MINIO_BACKUP_FILE_PREFIX || "/",
|
||||||
db_host: DB_HOST,
|
db_host: DB_HOST,
|
||||||
db_port: DB_PORT,
|
db_port: DB_PORT,
|
||||||
db_user: DB_USERNAME,
|
db_user: DB_USERNAME,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue