Apache LibCloud и Rackspace Cloudfiles

Я начал использовать библиотеку Apache libcloud с python, чтобы позволить мне общаться с облачными файлами в стойке в python3 (pyrax только 2)

У меня все работает успешно, и я с удовольствием загружаю файлы / создаю контейнеры и т.д.

К сожалению, я, кажется, могу получить HTTP-URL только для загруженных элементов:

driver.get_object_cdn_url(obj)

Это вернет URL-адрес HTTP для объекта, который я только что загрузил.

Есть ли способ получить ДРУГОЙ URL (ы) (HTTPS / Streaming и т. Д.) Через эту библиотеку (я не могу понять это из документации!)

1 ответ

Драйвер позволяет вам сначала включить функциональность CDN на контейнере.

driver.enable_container_cdn(container)

Нет способа напрямую получить потоковый URL, get_container_cdn_url отвечает только статическим URL CDN. Этот фрагмент кода будет получать информацию непосредственно из API:

from libcloud.utils.py3 import urlquote
container_name = '<your container name'
response = driver.connection.request('/%s' % (urlquote(container_name)),
                                       method='HEAD',
                                       cdn_request=True)
uri = response.headers['x-cdn-uri']
ssl_uri = response.headers['x-cdn-ssl-uri']
stream_uri = response.headers['x-cdn-streaming-uri']

См. Эти справочные документы для деталей.

Другие вопросы по тегам