flzta commited on
Commit
b8246a4
·
verified ·
1 Parent(s): 317dea7

Update sync_data.sh

Browse files
Files changed (1) hide show
  1. sync_data.sh +6 -67
sync_data.sh CHANGED
@@ -10,41 +10,9 @@ fi
10
  # 设置解密密钥 (请务必设置一个长且随机的字符串)
11
  ENCRYPTION_KEY=${ENCRYPTION_KEY:-"请在此处设置您的加密密钥,这是一个长且随机的字符串"}
12
  BACKUP_DELAY=${BACKUP_DELAY:-7200} # 默认备份间隔为 2 小时
13
- UPLOAD_INACTIVITY_TIME=${UPLOAD_INACTIVITY_TIME:-600} # 默认上传閒置时间为 10 分钟 (600 秒)
14
- CLOUDREVE_LOG_FILE="/proc/self/fd/2" # 假设 Cloudreve 日志输出到标准错误/输出
15
- HF_DATA_DIR="/opt/cloudreve/hf_uploaded_files" # 用于记录已上传到 HF 的文件
16
 
17
- # 创建 HF 上传记录目录
18
- mkdir -p "$HF_DATA_DIR"
19
-
20
- # Python 函数: 上传文件到 Hugging Face Dataset
21
- upload_file_to_dataset() {
22
- local_file_path="$1"
23
- relative_path=$(echo "$local_file_path" | sed "s|$CLOUDREVE_DIR/data/||")
24
- token="$HF_TOKEN"
25
- repo_id="$DATASET_ID"
26
-
27
- echo "Preparing to upload file: $local_file_path to Dataset: $repo_id at path: $relative_path"
28
-
29
- python3 -c "
30
- from huggingface_hub import HfApi
31
- import os
32
-
33
- api = HfApi(token='$token')
34
- try:
35
- repo_id_val = os.environ.get('DATASET_ID')
36
- print(f'Uploading file: '$local_file_path' to {repo_id_val} as '$relative_path'')
37
- api.upload_file(
38
- path_or_fileobj='$local_file_path',
39
- path_in_repo='$relative_path',
40
- repo_id='$repo_id',
41
- repo_type='dataset'
42
- )
43
- print(f'Successfully uploaded '$relative_path'')
44
- except Exception as e:
45
- print(f'Error uploading file: {str(e)}')
46
- "
47
- }
48
 
49
  # 上传备份
50
  upload_backup() {
@@ -137,7 +105,6 @@ import base64
137
  from cryptography.fernet import Fernet
138
  from cryptography.hazmat.primitives import hashes
139
  from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
140
- import io
141
  def generate_key(password, salt=b'cloudreve_salt'):
142
  kdf = PBKDF2HMAC(
143
  algorithm=hashes.SHA256(),
@@ -224,42 +191,14 @@ sync_data() {
224
 
225
  rm -f "/tmp/${backup_file}"
226
 
227
- # 检查最近是否有上传活动
228
- if tail -n 50 "$CLOUDREVE_LOG_FILE" | grep -qE 'PUT "/api/v3/file/upload"|POST "/api/v3/file/upload/[^/]+/([0-9]+)"'; then
229
- echo "Recent upload activity detected. Waiting for ${UPLOAD_INACTIVITY_TIME} seconds of inactivity before next backup."
230
- sleep "$UPLOAD_INACTIVITY_TIME"
231
- # 再次检查,确保在等待期间没有新的上传
232
- if tail -n 50 "$CLOUDREVE_LOG_FILE" | grep -qE 'PUT "/api/v3/file/upload"|POST "/api/v3/file/upload/[^/]+/([0-9]+)"'; then
233
- echo "Upload activity still detected. Skipping individual file upload for this cycle."
234
- else
235
- if [ -d /opt/cloudreve/data" ]; then
236
- find "/opt/cloudreve/data" -type f -print0 | while IFS= read -r -d $'\0' file; do
237
- if [ ! -f "$HF_DATA_DIR/$(basename "$file")" ]; then
238
- echo "New file found: $file"
239
- upload_file_to_dataset "$file"
240
- touch "$HF_DATA_DIR/$(basename "$file")" # 创建已上传标记
241
- fi
242
- done
243
- fi
244
- fi
245
- else
246
- if [ -d /opt/cloudreve/data" ]; then
247
- find "/opt/cloudreve/data" -type f -print0 | while IFS= read -r -d $'\0' file; do
248
- if [ ! -f "$HF_DATA_DIR/$(basename "$file")" ]; then
249
- echo "New file found: $file"
250
- upload_file_to_dataset "$file"
251
- touch "$HF_DATA_DIR/$(basename "$file")" # 创建已上传标记
252
- fi
253
- done
254
- fi
255
- fi
256
  else
257
  echo "Cloudreve directory does not exist yet, waiting..."
258
  sleep 60 # 如果 Cloudreve 目录不存在,等待 60 秒后重试
259
  fi
260
- initial_backup_done=true
261
- echo "Backup completed. Waiting for ${BACKUP_DELAY} seconds before the next backup."
262
- sleep "$BACKUP_DELAY" # sleep 移动到这里
263
  done
264
  }
265
 
 
10
  # 设置解密密钥 (请务必设置一个长且随机的字符串)
11
  ENCRYPTION_KEY=${ENCRYPTION_KEY:-"请在此处设置您的加密密钥,这是一个长且随机的字符串"}
12
  BACKUP_DELAY=${BACKUP_DELAY:-7200} # 默认备份间隔为 2 小时
 
 
 
13
 
14
+ # 激活虚拟环境
15
+ source /opt/venv/bin/activate
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  # 上传备份
18
  upload_backup() {
 
105
  from cryptography.fernet import Fernet
106
  from cryptography.hazmat.primitives import hashes
107
  from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
 
108
  def generate_key(password, salt=b'cloudreve_salt'):
109
  kdf = PBKDF2HMAC(
110
  algorithm=hashes.SHA256(),
 
191
 
192
  rm -f "/tmp/${backup_file}"
193
 
194
+ initial_backup_done=true
195
+
196
+ echo "Backup completed. Waiting for ${BACKUP_DELAY} seconds before the next backup."
197
+ sleep "$BACKUP_DELAY" # 将 sleep 移动到这里
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198
  else
199
  echo "Cloudreve directory does not exist yet, waiting..."
200
  sleep 60 # 如果 Cloudreve 目录不存在,等待 60 秒后重试
201
  fi
 
 
 
202
  done
203
  }
204