You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
2.0 KiB

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}")