47 lines
1.7 KiB
JavaScript
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 };
|