Python:如何为 IBM Cloud Object Storage 生成预签名 URL?
Python: How do I generate presigned URLs for IBM Cloud Object Storage?
我按照此信息为我的 IBM Cloud Object Storage (COS) 实例创建了 HMAC 密钥。我正在使用 Python SDK for IBM COS。如何创建预先签名的 URI(链接),以便用户无需身份验证即可上传或下载文件?
我正在尝试提供 HMAC 凭据作为客户端参数的一部分,但我收到如下错误:
File "/usr/lib/python2.7/site-packages/ibm_botocore/config.py", line
142, in _record_user_provided_options
'Got unexpected keyword argument \'%s\'' % key) TypeError: Got unexpected keyword argument 'cos_hmac_keys'
这是 HMAC 密钥结构:
"cos_hmac_keys": {
"access_key_id": "dfe869efasdasd",
"secret_access_key": "f04e500a66asdasdasd5bfd34c82"
}
我发现 COS S3 客户端正在从 IBM Cloud 配置目录读取 HMAC 凭证,或者您必须以不同的名称传递它们:
cos = ibm_boto3.client('s3', myserviceapikey, endpoint_url=myendpointurl, aws_access_key_id=config["cos_hmac_keys"]["access_key_id"], aws_secret_access_key=config["cos_hmac_keys"]["secret_access_key"])
基本上,我必须将 cos_hmac_keys.access_key_id
映射到 aws_access_key_id
并将 cos_hmac_keys.secret_access_key
映射到 aws_secret_access_key
.
初始化 COS 客户端后,我可以创建预签名 URI:
theURL=cos.generate_presigned_url('get_object', Params = {'Bucket': mybucket, 'Key': myobject}, ExpiresIn = 600)
我按照此信息为我的 IBM Cloud Object Storage (COS) 实例创建了 HMAC 密钥。我正在使用 Python SDK for IBM COS。如何创建预先签名的 URI(链接),以便用户无需身份验证即可上传或下载文件?
我正在尝试提供 HMAC 凭据作为客户端参数的一部分,但我收到如下错误:
File "/usr/lib/python2.7/site-packages/ibm_botocore/config.py", line 142, in _record_user_provided_options 'Got unexpected keyword argument \'%s\'' % key) TypeError: Got unexpected keyword argument 'cos_hmac_keys'
这是 HMAC 密钥结构:
"cos_hmac_keys": {
"access_key_id": "dfe869efasdasd",
"secret_access_key": "f04e500a66asdasdasd5bfd34c82"
}
我发现 COS S3 客户端正在从 IBM Cloud 配置目录读取 HMAC 凭证,或者您必须以不同的名称传递它们:
cos = ibm_boto3.client('s3', myserviceapikey, endpoint_url=myendpointurl, aws_access_key_id=config["cos_hmac_keys"]["access_key_id"], aws_secret_access_key=config["cos_hmac_keys"]["secret_access_key"])
基本上,我必须将 cos_hmac_keys.access_key_id
映射到 aws_access_key_id
并将 cos_hmac_keys.secret_access_key
映射到 aws_secret_access_key
.
初始化 COS 客户端后,我可以创建预签名 URI:
theURL=cos.generate_presigned_url('get_object', Params = {'Bucket': mybucket, 'Key': myobject}, ExpiresIn = 600)