2013-06-23 3 views
2

Я использую Java jclouds API для доступа к моей учетной записи облачных файлов Rackspace.Получение ссылок объекта в облачных файлах Rackspace API

Я могу создать и перечислить контейнеры и загрузить объекты, но я не могу понять, как получить общедоступные ссылки для загруженного объекта. (Я вижу эти общедоступные ссылки из панели управления Rackspace, щелкнув правой кнопкой мыши на объекте - существует 4 типа: HTTP, HTTPS, Streaming, iOS Streaming).

Ближайшим, что я могу получить, является использование объекта object.getInfo() для получения метаданных объекта. Это включает URI, но это не похоже на общедоступные ссылки, которые я нахожу в панели управления.

Кто-нибудь знает, что я делаю неправильно?

ответ

1

я понял это ...

Во-первых, я должен получить публичный URI контейнера объекта, а не от объекта.

Затем я использую объект CloudFilesClient. На контейнере мне нужно использовать getCDNMetadata("containername").getCDNUri()

0

Для получения определенного файла CDN-адрес укажите более подробную информацию и пример кода. Для получения более подробной информации вы можете извлечь руководство Java: https://developer.rackspace.com/docs/cloud-files/quickstart/?lang=java

Сначала получить облако файлов API:

CloudFilesApi cloudFilesApi = ContextBuilder.newBuilder("rackspace-cloudfiles-us") 
     .credentials("{username}", "{apiKey}") 
     .buildApi(CloudFilesApi.class); 

Оттуда вы можете запросить контейнер:

CDNApi cdnApi = cloudFilesApi.getCDNApi("{region}"); 
    CDNContainer cdnContainer = cdnApi.get("{containerName}"); 

Теперь с этим CDNContainer вы можете получить конкретный веб-адрес, который вам нужен:

URI httpURI = cdnContainer.getUri(); 
    URI httpsURI = cdnContainer.getSslUri(); 

Это даст вам базовый URI для контейнера. Теперь, чтобы получить окончательный адрес для вашего конкретного файла, вам нужно добавить /{"your_file_name.extension "} в конец адреса. Например, если мой базовый URI был преобразован в URL, то в строку может выглядеть следующим образом:

http://123456asdf-qwert987653.rackcdn.com/ 

Из здесь я могу получить файл с именем example.mp4 со следующим адресом:

http://123456asdf-qwert987653.rackcdn.com/example.mp4 

Все это предполагает, что вы уже включили CDN на контейнере.