Files
dsProject/dsLightRag/Util/OssUtil.py
2025-08-14 15:45:08 +08:00

56 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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("上传操作失败")