Update sync_data.sh
Browse files- 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 |
-
#
|
| 18 |
-
|
| 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 |
-
|
| 229 |
-
|
| 230 |
-
|
| 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 |
|