Upload main.py
Browse files
main.py
CHANGED
@@ -104,8 +104,9 @@ class CivitAICrawler:
|
|
104 |
|
105 |
def encrypt_with_rclone(self, local_path: str):
|
106 |
"""
|
107 |
-
|
108 |
-
|
|
|
109 |
"""
|
110 |
if not os.path.exists(local_path):
|
111 |
raise FileNotFoundError(f"[ERROR] Local path not found: {local_path}")
|
@@ -114,18 +115,36 @@ class CivitAICrawler:
|
|
114 |
if os.path.isdir(self.config.ENCRYPTED_DIR):
|
115 |
shutil.rmtree(self.config.ENCRYPTED_DIR, ignore_errors=True)
|
116 |
|
117 |
-
|
118 |
-
if
|
119 |
-
top_level_name = "unnamed"
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
if not os.path.isdir(self.config.ENCRYPTED_DIR):
|
127 |
raise FileNotFoundError(
|
128 |
-
f"[ERROR] {self.config.ENCRYPTED_DIR} not found. Check
|
129 |
)
|
130 |
|
131 |
# 例: upload_encrypted_files の中の再試行処理
|
|
|
104 |
|
105 |
def encrypt_with_rclone(self, local_path: str):
|
106 |
"""
|
107 |
+
local_path がファイルかフォルダかで処理を分け、
|
108 |
+
- フォルダ → 従来通り rclone copy
|
109 |
+
- ファイル → rclone copyto を使って暗号化
|
110 |
"""
|
111 |
if not os.path.exists(local_path):
|
112 |
raise FileNotFoundError(f"[ERROR] Local path not found: {local_path}")
|
|
|
115 |
if os.path.isdir(self.config.ENCRYPTED_DIR):
|
116 |
shutil.rmtree(self.config.ENCRYPTED_DIR, ignore_errors=True)
|
117 |
|
118 |
+
# ========= 1) local_path がフォルダの場合 =========
|
119 |
+
if os.path.isdir(local_path):
|
120 |
+
top_level_name = os.path.basename(local_path.rstrip("/")) or "unnamed"
|
121 |
+
cmd = [
|
122 |
+
"rclone", "copy",
|
123 |
+
local_path,
|
124 |
+
f"cryptLocal:{top_level_name}",
|
125 |
+
"-v"
|
126 |
+
]
|
127 |
+
logger.info(f"[INFO] Running: {' '.join(cmd)}")
|
128 |
+
subprocess.run(cmd, check=True)
|
129 |
+
|
130 |
+
# ========= 2) local_path がファイルの場合 =============
|
131 |
+
else:
|
132 |
+
filename = os.path.basename(local_path)
|
133 |
+
# "rclone copyto <file> cryptLocal:<same_filename>" にすると
|
134 |
+
# cryptLocal 側では1ファイルとして扱われる
|
135 |
+
cmd = [
|
136 |
+
"rclone", "copyto",
|
137 |
+
local_path,
|
138 |
+
f"cryptLocal:{filename}",
|
139 |
+
"-v"
|
140 |
+
]
|
141 |
+
logger.info(f"[INFO] Running: {' '.join(cmd)}")
|
142 |
+
subprocess.run(cmd, check=True)
|
143 |
+
|
144 |
+
logger.info(f"[OK] rclone => cryptLocal:")
|
145 |
if not os.path.isdir(self.config.ENCRYPTED_DIR):
|
146 |
raise FileNotFoundError(
|
147 |
+
f"[ERROR] {self.config.ENCRYPTED_DIR} not found. Check rclone config."
|
148 |
)
|
149 |
|
150 |
# 例: upload_encrypted_files の中の再試行処理
|