Rackspace CloudFiles HTTP临时URL(非HTTPS)

时间:2014-06-13 16:57:30

标签: android ruby-on-rails html5 rackspace rackspace-cloudfiles

我有一个rails应用程序,允许用户上传音频和视频。然后将音频和视频传送到我们的HTML5应用程序。我们使用rackspace CloudFiles(私有)来存储所有文件,一切都运行良好。

问题是尝试将视频传输给Android用户(Android不喜欢播放HTTPS媒体文件)。

要解决此问题,我正在寻找一种在没有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 个答案:

答案 0 :(得分:1)

答案看似简单:只需使用HTTP。

Tempurl请求are not signed with the protocol - 仅请求类型,到期时间和对象路径。对HTTPS有效的令牌对HTTP同样有效。

如果你正在使用雾,你可以通过将实例方案设置为HTTP或在选项哈希中传递scheme: 'http'来轻松完成此操作。