Spaces:
Paused
Paused
Upload 27 files
Browse files- src/utils/storage.js +16 -4
src/utils/storage.js
CHANGED
|
@@ -15,9 +15,15 @@ const logger = createLogger('Storage');
|
|
| 15 |
*/
|
| 16 |
class StorageManager {
|
| 17 |
constructor() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
// 数据文件路径
|
| 19 |
-
this.dataFilePath = path.join(
|
| 20 |
-
this.backupFilePath = path.join(
|
| 21 |
|
| 22 |
// 确保数据目录存在
|
| 23 |
this.ensureDataDirectory();
|
|
@@ -29,8 +35,14 @@ class StorageManager {
|
|
| 29 |
ensureDataDirectory() {
|
| 30 |
const dataDir = path.dirname(this.dataFilePath);
|
| 31 |
if (!fs.existsSync(dataDir)) {
|
| 32 |
-
|
| 33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
}
|
| 35 |
}
|
| 36 |
|
|
|
|
| 15 |
*/
|
| 16 |
class StorageManager {
|
| 17 |
constructor() {
|
| 18 |
+
// 优先使用环境变量 DATA_DIR,如果未设置,则默认为项目根目录下的 'data' 文件夹
|
| 19 |
+
// 这样可以灵活配置数据存储路径,以适应不同的部署环境(如 Hugging Face Spaces)
|
| 20 |
+
const dataDir = process.env.DATA_DIR || path.join(process.cwd(), 'data');
|
| 21 |
+
|
| 22 |
+
logger.info(`Data directory is set to: ${dataDir}`);
|
| 23 |
+
|
| 24 |
// 数据文件路径
|
| 25 |
+
this.dataFilePath = path.join(dataDir, 'cookies-data.json');
|
| 26 |
+
this.backupFilePath = path.join(dataDir, 'cookies-data.backup.json');
|
| 27 |
|
| 28 |
// 确保数据目录存在
|
| 29 |
this.ensureDataDirectory();
|
|
|
|
| 35 |
ensureDataDirectory() {
|
| 36 |
const dataDir = path.dirname(this.dataFilePath);
|
| 37 |
if (!fs.existsSync(dataDir)) {
|
| 38 |
+
try {
|
| 39 |
+
fs.mkdirSync(dataDir, { recursive: true });
|
| 40 |
+
logger.info(`创建数据目录: ${dataDir}`);
|
| 41 |
+
} catch (error) {
|
| 42 |
+
logger.error(`创建数据目录失败: ${dataDir}. 请确保此路径具有写入权限。`);
|
| 43 |
+
logger.error('在 Hugging Face Spaces 等环境中,您可能需要设置 DATA_DIR 环境变量。');
|
| 44 |
+
throw error;
|
| 45 |
+
}
|
| 46 |
}
|
| 47 |
}
|
| 48 |
|