in pai/toolkit/config.py [0:0]
def prompt_for_credential():
default_credential_client = _get_default_credential_client()
if not default_credential_client:
# Prompt for Access Key ID and Access Key Secret
access_key_id = prompt(
localized_text(
"Please enter your Alibaba Cloud account AccessKeyId: ",
"请输入您的阿里云账号AccessKeyId: ",
),
validator=Validator.from_callable(
validate_func=not_empty,
error_message=localized_text(
"AccessKeyId can not be empty string.",
"AccessKeyId 不能为空",
),
move_cursor_to_end=True,
),
).strip()
access_key_secret = prompt(
localized_text(
"Please enter your Alibaba Cloud account AccessKeySecret: ",
"请输入您的阿里云账号AccessKeySecret: ",
),
is_password=True,
validator=Validator.from_callable(
validate_func=not_empty,
error_message=localized_text(
"AccessKeySecret can not be empty string.",
"AccessKeySecret 不能为空",
),
move_cursor_to_end=True,
),
).strip()
credential_config = CredentialConfig(
access_key_id=access_key_id,
access_key_secret=access_key_secret,
type=auth_constant.ACCESS_KEY,
)
credential_client = CredentialClient(config=credential_config)
else:
# Credential chain documentation:
# https://help.aliyun.com/zh/sdk/developer-reference/v2-manage-python-access-credentials
print(
localized_text(
"Use credential from default credential provider chain:",
"使用默认的凭证链获取访问密钥:",
)
)
credential_source_hint = CredentialProviderType.credential_hint(
CredentialProviderType.get_current_provider()
)
print(credential_source_hint)
credential_client = default_credential_client
credential_config = None
region_id = prompt_for_region()
print_highlight(
localized_text(
"The current configuration of Credential and RegionId:",
"当前配置的访问密钥和地域:",
)
)
access_key_id = credential_client.get_access_key_id()
access_key_secret = credential_client.get_access_key_secret()
security_token = credential_client.get_security_token()
print_highlight(f"AccessKeyId: {access_key_id}")
print_highlight(f"AccessKeySecret: { mask_secret(access_key_secret)}")
if security_token:
print_highlight(f"SecurityToken: {mask_and_trim(security_token)}")
print_highlight(f"RegionId: {region_id}")
user_profile = UserProfile(
credential_config=credential_config,
region_id=region_id,
)
print_highlight(f"IdentityType: {user_profile.identify_type}")
# Write input credential to default credential config file.
if credential_config:
raw_config = CREDENTIAL_INI_TEMPLATE.format(
access_key_id=access_key_id,
access_key_secret=access_key_secret,
)
os.makedirs(os.path.dirname(DEFAULT_CREDENTIAL_INI_PATH), exist_ok=True)
with open(DEFAULT_CREDENTIAL_INI_PATH, "w") as f:
f.write(raw_config)
print(
localized_text("Credential saved to: ", "密钥已保存至: ")
+ DEFAULT_CREDENTIAL_INI_PATH
)
check_product_authorization(user_profile)
return user_profile