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