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