from minio import Minio from minio.error import S3Error import os # 配置信息 ENDPOINT = "minio-jndsj.t-aaron.com:2443" ACCESS_KEY = "PJM0c2qlauoXv5TMEHm2" SECRET_KEY = "Wr69Dm3ZH39M3GCSeyB3eFLynLPuGCKYfphixZuI" BUCKET_NAME = "algorithm" FOLDER_PATH = "weights/024/V1.3" LOCAL_SAVE_DIR = "./downloaded_files" # 本地保存目录 # 创建 MinIO 客户端 client = Minio( ENDPOINT, access_key=ACCESS_KEY, secret_key=SECRET_KEY, secure=True # 使用 HTTPS ) def download_folder(): try: # 确保本地目录存在 os.makedirs(LOCAL_SAVE_DIR, exist_ok=True) # 列出文件夹中的所有对象 objects = client.list_objects(BUCKET_NAME, prefix=FOLDER_PATH, recursive=True) for obj in objects: # 构建本地文件路径 local_path = os.path.join(LOCAL_SAVE_DIR, os.path.relpath(obj.object_name, FOLDER_PATH)) # 确保子目录存在 os.makedirs(os.path.dirname(local_path), exist_ok=True) # 下载文件 print(f"正在下载: {obj.object_name} -> {local_path}") client.fget_object(BUCKET_NAME, obj.object_name, local_path) print("所有文件下载完成!") except S3Error as e: print(f"MinIO 错误: {e}") except Exception as e: print(f"发生错误: {e}") if __name__ == "__main__": download_folder()