ttttdiva commited on
Commit
a2567f3
·
verified ·
1 Parent(s): 6db8c05

Upload main.py

Browse files
Files changed (1) hide show
  1. main.py +31 -12
main.py CHANGED
@@ -104,8 +104,9 @@ class CivitAICrawler:
104
 
105
  def encrypt_with_rclone(self, local_path: str):
106
  """
107
- 指定ファイル or ディレクトリを cryptLocal: にコピー。
108
- フォルダ構造やファイル名を rclone filename_encryption 設定に応じて暗号化する。
 
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
- top_level_name = os.path.basename(local_path.rstrip("/"))
118
- if not top_level_name:
119
- top_level_name = "unnamed"
120
-
121
- cmd = ["rclone", "copy", local_path, f"cryptLocal:{top_level_name}", "-v"]
122
- logger.info(f"[INFO] Running: {' '.join(cmd)}")
123
- subprocess.run(cmd, check=True)
124
- logger.info(f"[OK] rclone copy => cryptLocal:{top_level_name}")
125
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  if not os.path.isdir(self.config.ENCRYPTED_DIR):
127
  raise FileNotFoundError(
128
- f"[ERROR] {self.config.ENCRYPTED_DIR} not found. Check your rclone config."
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 の中の再試行処理