Files
dsProject/dsLightRag/Util/OssUtil.py

56 lines
1.9 KiB
Python
Raw Normal View History

2025-08-14 15:45:08 +08:00
# -*- coding: utf-8 -*-# pip install oss2
import os
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from Config.Config import ALY_AK, ALY_SK, ALY_ENDPOINT, ALY_REGION, ALY_BUCKET, ALY_OSS_PREFIX
def upload_to_oss(local_file_path: str, object_name: str) -> bool:
"""
将本地文件上传到阿里云OSS
@param local_file_path: 本地文件的完整路径
@param object_name: OSS上的对象名称完整路径中不能包含Bucket名称
@return: 上传成功返回True失败返回False
"""
try:
# 设置环境变量获取访问凭证
os.environ['OSS_ACCESS_KEY_ID'] = ALY_AK
os.environ['OSS_ACCESS_KEY_SECRET'] = ALY_SK
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 创建Bucket对象
bucket = oss2.Bucket(auth, ALY_ENDPOINT, ALY_BUCKET, region=ALY_REGION)
# 上传文件
print(f"开始上传文件: {local_file_path} 到 OSS: {object_name}")
bucket.put_object_from_file(object_name, local_file_path)
print(f"文件上传成功: {object_name}")
return True
except Exception as e:
print(f"文件上传失败: {str(e)}")
return False
def get_url(file_name):
key = f'{ALY_OSS_PREFIX}/{file_name}'
aly_endpoint = ALY_ENDPOINT.replace("https://", "")
url = f"https://{ALY_BUCKET}.{aly_endpoint}/{key}"
return url
# 示例用法
if __name__ == '__main__':
# 本地文件的完整路径
local_file_path = r'/Dsideal/handwriting.jpg'
# 填写Object完整路径完整路径中不能包含Bucket名称
object_name = 'HuangHai/handwriting.jpg'
# 调用函数上传文件
upload_success = upload_to_oss(local_file_path, object_name)
if upload_success:
print("上传操作完成")
else:
print("上传操作失败")