ComfyUI-WorkflowPublisher/workflow_service/s3_client.py

18 lines
919 B
Python

import boto3
from workflow_service.config import Settings
import asyncio
settings = Settings()
s3_client = boto3.client('s3', aws_access_key_id=settings.AWS_ACCESS_KEY_ID, aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY, region_name=settings.AWS_REGION_NAME)
async def upload_file_to_s3(file_path: str, bucket: str, object_name: str) -> str:
"""从本地文件路径上传"""
loop = asyncio.get_event_loop()
await loop.run_in_executor(None, lambda: s3_client.upload_file(file_path, bucket, object_name))
return f"https://cdn.roasmax.cn/{object_name}"
async def upload_bytes_to_s3(file_bytes: bytes, bucket: str, object_name: str) -> str:
"""直接从内存中的bytes上传 (新函数)"""
loop = asyncio.get_event_loop()
await loop.run_in_executor(None, lambda: s3_client.put_object(Body=file_bytes, Bucket=bucket, Key=object_name))
return f"https://cdn.roasmax.cn/{object_name}"