ken_nogi/dbbackup/lib/logUpload.js
Kenichiro NOGI 67cc3da6c8 up
2026-07-13 19:02:04 +09:00

47 lines
1.7 KiB
JavaScript

"use strict";
/*
* バックアップ/リストア処理の成否に関わらず、当月ログファイルを
* Pleasanter_DB_Backup/logs 配下へ上書きアップロードする。backup.js / restore.js 共用。
*/
const fs = require("fs");
const logger = require("./logger");
const { getUserAccessToken } = require("./lineworksUserAuth");
const drive = require("./lineworksDrive");
async function uploadLogFile({ accessToken, sharedriveId, backupFolderId } = {}) {
logger.info("ログファイルアップロード開始");
try {
let token = accessToken;
let driveId = sharedriveId;
let folderId = backupFolderId;
if (!token) {
token = await getUserAccessToken();
}
if (!driveId) {
driveId = await drive.resolveSharedDriveId(token, logger);
}
if (!folderId) {
const rootFolderName = process.env.LW_BACKUP_ROOT_FOLDER_NAME || "Pleasanter_DB_Backup";
const backupFolder = await drive.ensureFolder(token, driveId, null, rootFolderName, logger);
folderId = backupFolder.fileId;
}
const logFolderName = process.env.LW_LOG_FOLDER_NAME || "logs";
const logsFolder = await drive.ensureFolder(token, driveId, folderId, logFolderName, logger);
const logFilePath = logger.currentLogFilePath();
if (fs.existsSync(logFilePath)) {
await drive.uploadFile(token, driveId, logsFolder.fileId, logFilePath, { overwrite: true }, logger);
logger.info("ログファイルアップロード成功");
}
} catch (err) {
logger.error(`ログファイルアップロード失敗: ${err.message}`);
}
}
module.exports = { uploadLogFile };