Rackspace CloudFiles HTTP Temp URL (не HTTPS)
У меня есть приложение rails, которое позволяет пользователям загружать аудио и видео. Затем аудио и видео доставляются в наше приложение HTML5. Мы используем rackspace CloudFiles (private) для хранения всего файла, и все работает хорошо.
Проблема в том, чтобы попытаться передать видео пользователям Android (Android не любит проигрывать HTTPS медиа-файлы).
Чтобы решить эту проблему, я ищу способ создать временный URL без HTTPS-ссылки.
Любая помощь будет принята с благодарностью.
Благодарю.
require "openssl"
cloudfiles_folder = FOLDER_NAME
url_string = ASSET_URL_STRING_FROM_PAPERCLIP
method = "GET"
base_url, object_path = ("http://storage101.ord1.clouddrive.com/v1/MossoCloudFS_HIDING_REST_OF_URL/"+cloudfiles_folder+"/"+url_string ).split(/\/v1\//)
object_path = "/v1/" + object_path
seconds = 1200
expires = (Time.now + seconds).to_i
hmac_body = "#{method}\n#{expires}\n#{object_path}"
sig = OpenSSL::HMAC.hexdigest("sha1", ENV["RACKSPACE_TEMP_URL_KEY"], hmac_body)
puts ("#{base_url}#{object_path}?" + "temp_url_sig=#{sig}&temp_url_expires=#{expires}")
1 ответ
Ответ обманчиво прост: просто используйте HTTP.
Tempurl-запросы не подписаны протоколом- только тип запроса, срок действия и путь к объекту. Токен, действительный для HTTPS, одинаково действителен и для HTTP.
Если вы используете туман, вы можете легко сделать это, установив схему экземпляра на HTTP или передав scheme: 'http'
в твоих вариантах хеш.