IBM Object Storage-Как сделать файл или контейнер общедоступным?

Я загрузил локальный файл в контейнер IBM Storage с помощью Node js. В ответ я получил baseResourceUrl (https://dal.objectstorage.open.softlayer.com:443/v1/AUTH_bf7 d89eb565f4c638d7b6f7b15e73538/testContainer/test.png)

URL-адрес недоступен в браузере. Он говорит: «Неавторизованный».

В моем случае мне нужен публичный доступ в любом месте. Возможно ли это? Если можно как дать публичный доступ к файлам.

Я новичок в среде IBM Bluemix и службе Object Storage. Пожалуйста, поделитесь некоторыми решениями.


person user7369339    schedule 31.08.2017    source источник


Ответы (1)


После загрузки файла вам потребуется изменить ACL. В итоге вы создадите Read ACL для контейнера: testContainer.

Я смог протестировать это с помощью Swift CLI, однако вы можете использовать примеры curl, чтобы выяснить, что вам нужно написать с помощью Node.

Пример Swift (предполагается, что у вас есть экспортированные переменные ENV):

swift post testContainer --read-acl ".r:*,.rlistings"

Скручивание с AUTH_TOKEN:

$ curl -X PUT -i \
>         -H "X-Auth-Token: AUTH_TOKEN" \
>         -H "X-Container-Read: .r:*,.rlistings" \
>         https://dal.objectstorage.open.softlayer.com/v1/AUTH_bf7d89eb565f4c638d7b6f7b15e73538/testContainer

https://www.swiftstack.com/docs/cookbooks/swift_usage/container_acl.html#setting-container-read-acl

Если мы вернемся к быстрому клиенту, мы сможем просмотреть текущие ACL:

swift stat -v testContainer

Который вернет данные о контейнере:

Read ACL: .r:*,.rlistings
Write ACL:
person Michael Petersen    schedule 31.08.2017
comment
Работает. Спасибо за решение - person user7369339; 01.09.2017