2017-01-18 8 views
0

Я использую клиент Python-Swift для подключения к файлу Openstack Swift для хранения файлов. Моя служба позволяет пользователю загружать файл и хранить его в Swift. Мое требование состоит в том, чтобы файл мог быть прочитан без разрешения.Можно ли установить ACL контейнера с помощью SwiftService.upload?

Я нашел решение для разрешения на чтение; При создании контейнера я должен установить Read ACL {'read_acl': '.r:*'}. Однако для этого требуется отдельный запрос на создание контейнера. Я написал код для создания контейнера, чтобы обеспечить установку ACL.

Теперь каждый запрос, я закончил делать 2 вещи: 1. Создайте контейнер с правильным ACL. 2. Загрузите файл в контейнер.

Это приводит к пустой трате времени с Upload делает создание контейнера автоматически, чтобы гарантировать его существование. Что добавило лишний ненужный шаг к чувствительному к времени процессу.

Возможно ли установить контейнер ACL через upload и у вас есть автоматическое создание? Что альтернатива для оптимизации этого процесса?

ответ

0

Похоже, что вы хотите получать права на чтение в нескольких контейнерах. В зависимости от ваших требований вы можете установить ACL на учетной записи или уровне арендатора, а затем каждый пользователь этого арендатора наследует эти права на все файлы, о которых знает учетная запись. Таким образом, вам не нужно гадать разрешения каждого контейнера при загрузке.

Это может не работать в зависимости от вашего рабочего процесса и требований.

https://www.swiftstack.com/docs/cookbooks/swift_usage/account_acl.html