Доступ к общедоступным URL-адресам из хранилища IBM Cloud - PullRequest
0 голосов
/ 11 сентября 2018

Я создал службу хранения облачных объектов IBM и создал в ней объекты, т.е. файлы изображений.

Я ищу шаги для доступа к изображениям в виде общедоступных URL-адресов.Я провел некоторые начальные исследования и обнаружил, что для этого есть команды cURL, использующие swift Client.

Ссылочные ссылки Как получить доступ к файлам в контейнере в службе хранения объектов в Bluemix? И Публичные URL-адреса для объектов в службе хранения объектов Bluemix

изПриведенные выше ссылки говорят о следующих шагах

  1. Настройка swift CLI.Можете ли вы связать мне шаги по настройке Swift CLI?(ссылка в ссылочной ссылке больше не работает).

2. Измените ACL-контейнер для чтения с помощью следующего PUT запроса

curl -X PUT "https://dal.objectstorage.open.softlayer.com/v1/AUTH_123/mycontainer" \
    -H "X-Auth-Token: token123" \
    -H "X-Container-Read: .r:*"

Но я не являюсьуверены, что вводить в заголовок X-Auth-Token?У меня есть следующая информация из учетных данных службы COS.

{
  "apikey": "X7aDm6yu123123hXwqvq1231232HgOtIGeZiAOEg",
  "endpoints": "https://cos-service.bluemix.net/endpoints",
  "iam_apikey_description": "Auto generated apikey during resource-key operation for Instance - crn:v1:bluemix:public:cloud-object-storage:global:a/f9aabca54c702be8386b2a3f9815b4e4:d145a33e-e8b1-446f-a87d-69431eaec0b1::",
  "iam_apikey_name": "auto-generated-apikey-bed16ed5-1373-47bc-b268-5e0f521bc802",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
  "iam_serviceid_crn": "crn:v1:bluemix:public:iam-identity::a/f9aabca54c702be8386b2a3f9815b4e4::serviceid:ServiceId-36c373a0-4bb9-4316-bc4b-86ea4c98dcd7",
  "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/f9aabca54c702be8386b2a3f9815b4e4:d145a33e-e8b1-446f-a87d-69431eaec0b1::"
}

Любая помощь будет очень признательна.Спасибо

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Чтобы выполнить такой однократный запрос, вы можете получить токены oauth из командной строки, используя ibmcloud iam oauth-tokens.Чтобы получить токен IAM, я использую:

export IAM_TOKEN=`ibmcloud iam oauth-tokens | head -n 1 | awk ' {print $4} '`

Затем выполните команду cURL:

curl -H "Authorization: Bearer $IAM_TOKEN" ...

Anприложение должно запрашивать токены на основе упомянутого apiKey.

curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Cache-Control: no-cache" -d 'apikey=<your api key here>&grant_type=urn:ibm:params:oauth:grant-type:apikey' "https://iam.bluemix.net/identity/token"

Вот пример использования запроса-обещания NPM:

const response = await rp({
  url: 'https://iam.bluemix.net/identity/token',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
  },
  method: "POST",
  body: `apikey=${apiKey}&grant_type=urn%3Aibm%3Aparams%3Aoauth%3Agrant-type%3Aapikey`,
  json: true
});

const token = response.access_token;
0 голосов
/ 11 сентября 2018

токен на предъявителя от IAM.https://console.bluemix.net/docs/services/cloud-object-storage/getting-started-cli.html#gather-key-information

См. Этот документ о создании предварительно подписанных URL-адресов (временных).https://console.bluemix.net/docs/services/cloud-object-storage/api-reference/api-reference-objects.html#object-operations

...