HeXi/hexi/plugins/fuck_pilipili/minio.py
sansenhoshi 275f05ee4a 重构
2026-01-04 17:15:40 +08:00

41 lines
1.2 KiB
Python

import boto3
from botocore.client import Config
# minio config
# MinIO配置
MINIO_ENDPOINT = "s3.sansenhoshi.top" # 不含 http/https
MINIO_ACCESS_KEY = "JDMynACSjPaN8JRwriwS"
MINIO_SECRET_KEY = "JRl4bIGxeiqwqvfeBTlAWQbUKMpNNHSZPm6ne93j"
MINIO_BUCKET = "s-file-trans"
MINIO_REGION = "bot"
MINIO_SECURE = True # False 则用 HTTP
# 可访问的公网地址前缀
MINIO_PUBLIC_DOMAIN = f"https://{MINIO_ENDPOINT}/{MINIO_BUCKET}"
s3_client = boto3.client(
"s3",
endpoint_url=f"{'https' if MINIO_SECURE else 'http'}://{MINIO_ENDPOINT}",
aws_access_key_id=MINIO_ACCESS_KEY,
aws_secret_access_key=MINIO_SECRET_KEY,
region_name=MINIO_REGION,
config=Config(signature_version="s3v4"),
)
def upload_to_s3(file_path) -> str:
file_key = f"cache/{file_path.name}" # 你可以换成别的目录
try:
s3_client.upload_file(
str(file_path),
MINIO_BUCKET,
file_key,
ExtraArgs={"ACL": "public-read"} # 如果你设置桶为私有,可以移除这行
)
return f"{MINIO_PUBLIC_DOMAIN}/{file_key}"
except Exception as e:
logger.exception(f"上传到 MinIO 失败: {e}")
return ""