clash-linux commited on
Commit
2fef15e
·
verified ·
1 Parent(s): 12cb430

Upload 27 files

Browse files
Files changed (1) hide show
  1. 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(dirname(dirname(__dirname)), 'data', 'cookies-data.json');
20
- this.backupFilePath = path.join(dirname(dirname(__dirname)), 'data', 'cookies-data.backup.json');
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
- fs.mkdirSync(dataDir, { recursive: true });
33
- logger.info(`创建数据目录: ${dataDir}`);
 
 
 
 
 
 
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