import json from alibabacloud_sts20150401 import models as sts_20150401_models from alibabacloud_sts20150401.client import Client as Sts20150401Client from alibabacloud_tea_openapi.models import Config # https://help.aliyun.com/zh/oss/use-cases/add-signatures-on-the-client-by-using-javascript-and-upload-data-to-oss?spm=a2c4g.11186623.help-menu-31815.d_6_1_0_1.2dd15d03SrLg4Q#4f036801celh7 # 配置阿里云 AccessKey 和 RAM 角色 ARN access_key_id = "LTAI5tJrhwuBzF2X9USrzubX" access_key_secret = "I6ezLuYhk9z9MRjXD2q99STSpTONwW" role_arn_for_oss_upload = "acs:ram::1546399445482588:role/huanghai-create-role" # RAM 角色 ARN # 替换为实际的 bucket 名称和 region-id BUCKET_NAME = 'hzkc' REGION_ID = 'cn-beijing' ENDPOINT = 'https://oss-cn-beijing.aliyuncs.com' OSS_PREFIX = "https://hzkc.oss-cn-beijing.aliyuncs.com/" host = OSS_PREFIX expire_time = 3600 # 指定过期时间,单位为秒 upload_dir = 'dir' # 指定上传到 OSS 的文件前缀 role_session_name = 'role_session_name' # 自定义会话名称 # 直接使用 access_key_id 和 access_key_secret 初始化 Config config = Config( region_id=REGION_ID, access_key_id=access_key_id, access_key_secret=access_key_secret ) # 创建 STS 客户端并获取临时凭证 sts_client = Sts20150401Client(config=config) assume_role_request = sts_20150401_models.AssumeRoleRequest( role_arn=role_arn_for_oss_upload, role_session_name=role_session_name ) response = sts_client.assume_role(assume_role_request) token = json.dumps(response.body.credentials.to_map()) # 将 JSON 字符串解析为 Python 字典 token_dict = json.loads(token) # 提取字段 access_key_id = token_dict['AccessKeyId'] access_key_secret = token_dict['AccessKeySecret'] expiration = token_dict['Expiration'] security_token = token_dict['SecurityToken'] # 打印提取的字段 print(f"AccessKeyId: {access_key_id}") print(f"AccessKeySecret: {access_key_secret}") print(f"Expiration: {expiration}") print(f"SecurityToken: {security_token}")