Python: Как создать предварительно назначенные URL-адреса для IBM Cloud Object Storage? - PullRequest
0 голосов
/ 30 августа 2018

Я следовал этой информации, чтобы создать ключи HMAC для моего экземпляра IBM Cloud Object Storage (COS). Я использую Python SDK для IBM COS . Как я могу создать предопределенные URI (ссылки), чтобы пользователи могли загружать или скачивать файлы без аутентификации?

Я пытаюсь предоставить учетные данные HMAC как часть параметров клиента, но я получаю ошибки, подобные следующим:

Файл "/usr/lib/python2.7/site-packages/ibm_botocore/config.py", строка 142, в _record_user_provided_options 'Получен неожиданный аргумент ключевого слова \'% s \ ''% key) TypeError: Получен неожиданный аргумент ключевого слова 'cos_hmac_keys'

Вот структура ключей HMAC:

"cos_hmac_keys": {
    "access_key_id": "dfe869efasdasd",
    "secret_access_key": "f04e500a66asdasdasd5bfd34c82"
  }

1 Ответ

0 голосов
/ 30 августа 2018

Я обнаружил, что клиент COS S3 либо читает учетные данные HMAC из каталога конфигурации IBM Cloud, либо вам нужно передать их под другим именем:

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)
...