mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-08 17:08:35 +08:00
fix
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import base64
|
||||
import hashlib
|
||||
import io
|
||||
import secrets
|
||||
import threading
|
||||
import time
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from pathlib import Path
|
||||
from queue import Queue
|
||||
from queue import Queue, Empty
|
||||
from typing import List, Dict, Optional, Tuple, Union
|
||||
import io
|
||||
|
||||
import requests
|
||||
from tqdm import tqdm
|
||||
@@ -591,13 +591,6 @@ class AliPan(StorageBase, metaclass=Singleton):
|
||||
raise Exception(resp.get("message"))
|
||||
return resp.get('part_info_list', [])
|
||||
|
||||
@staticmethod
|
||||
def _upload_part(upload_url: str, data: bytes):
|
||||
"""
|
||||
上传单个分片
|
||||
"""
|
||||
return requests.put(upload_url, data=data)
|
||||
|
||||
def _list_uploaded_parts(self, drive_id: str, file_id: str, upload_id: str) -> dict:
|
||||
"""
|
||||
获取已上传分片列表
|
||||
@@ -650,12 +643,14 @@ class AliPan(StorageBase, metaclass=Singleton):
|
||||
part_size = min(file_size // self.MAX_WORKERS, self.MAX_PART_SIZE)
|
||||
return part_size, min(file_size // part_size + 1, self.MAX_WORKERS)
|
||||
|
||||
def _log_progress(self, desc: str, total: int) -> tqdm:
|
||||
@staticmethod
|
||||
def _log_progress(desc: str, total: int) -> tqdm:
|
||||
"""
|
||||
创建一个可以输出到日志的进度条
|
||||
"""
|
||||
|
||||
class TqdmToLogger(io.StringIO):
|
||||
def write(s, buf):
|
||||
def write(s, buf): # noqa
|
||||
buf = buf.strip('\r\n\t ')
|
||||
if buf:
|
||||
logger.info(buf)
|
||||
@@ -671,7 +666,8 @@ class AliPan(StorageBase, metaclass=Singleton):
|
||||
miniters=1
|
||||
)
|
||||
|
||||
def _upload_part(self, upload_url: str, data: bytes, part_num: int,
|
||||
@staticmethod
|
||||
def _upload_part(upload_url: str, data: bytes, part_num: int,
|
||||
progress_queue: Queue) -> Tuple[int, str]:
|
||||
"""
|
||||
上传单个分片
|
||||
@@ -774,7 +770,7 @@ class AliPan(StorageBase, metaclass=Singleton):
|
||||
try:
|
||||
uploaded = progress_queue.get(timeout=1)
|
||||
progress_bar.update(uploaded)
|
||||
except:
|
||||
except Empty:
|
||||
pass
|
||||
|
||||
# 等待所有任务完成
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import base64
|
||||
import hashlib
|
||||
import io
|
||||
import json
|
||||
import secrets
|
||||
import threading
|
||||
import time
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
from pathlib import Path
|
||||
from queue import Queue
|
||||
from queue import Queue, Empty
|
||||
from typing import List, Dict, Optional, Tuple, Union
|
||||
import io
|
||||
|
||||
import oss2
|
||||
import requests
|
||||
from oss2 import SizedFileAdapter, determine_part_size
|
||||
from oss2.models import PartInfo
|
||||
from tqdm import tqdm
|
||||
|
||||
@@ -421,7 +420,8 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
||||
part_size = min(file_size // self.MAX_WORKERS, self.MAX_PART_SIZE)
|
||||
return part_size, min(file_size // part_size + 1, self.MAX_WORKERS)
|
||||
|
||||
def _upload_part(self, bucket: oss2.Bucket, object_name: str, upload_id: str,
|
||||
@staticmethod
|
||||
def _upload_part(bucket: oss2.Bucket, object_name: str, upload_id: str,
|
||||
part_number: int, part_data: bytes, progress_queue: Queue) -> PartInfo:
|
||||
"""
|
||||
上传单个分片
|
||||
@@ -437,12 +437,14 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
||||
logger.error(f"【115】分片 {part_number} 上传失败: {str(e)}")
|
||||
raise
|
||||
|
||||
def _log_progress(self, desc: str, total: int) -> tqdm:
|
||||
@staticmethod
|
||||
def _log_progress(desc: str, total: int) -> tqdm:
|
||||
"""
|
||||
创建一个可以输出到日志的进度条
|
||||
"""
|
||||
|
||||
class TqdmToLogger(io.StringIO):
|
||||
def write(s, buf):
|
||||
def write(s, buf): # noqa
|
||||
buf = buf.strip('\r\n\t ')
|
||||
if buf:
|
||||
logger.info(buf)
|
||||
@@ -463,6 +465,7 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
||||
"""
|
||||
实现带秒传、断点续传和多线程并发上传
|
||||
"""
|
||||
|
||||
def encode_callback(cb: dict):
|
||||
return oss2.utils.b64encode_as_string(json.dumps(cb).strip())
|
||||
|
||||
@@ -584,7 +587,7 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
||||
access_key_secret=AccessKeySecret,
|
||||
security_token=SecurityToken
|
||||
)
|
||||
bucket = oss2.Bucket(auth, endpoint, bucket_name)
|
||||
bucket = oss2.Bucket(auth, endpoint, bucket_name) # noqa
|
||||
|
||||
# 计算分片大小和线程数
|
||||
part_size, workers = self._calc_parts(file_size)
|
||||
@@ -635,7 +638,7 @@ class U115Pan(StorageBase, metaclass=Singleton):
|
||||
try:
|
||||
uploaded = progress_queue.get(timeout=1)
|
||||
progress_bar.update(uploaded)
|
||||
except:
|
||||
except Empty:
|
||||
pass
|
||||
|
||||
# 等待所有任务完成
|
||||
|
||||
Reference in New Issue
Block a user