1

사용자가 오디오 및 비디오를 업로드 할 수있는 레일 응용 프로그램이 있습니다. 오디오 및 비디오는 HTML5 앱으로 전달됩니다. 우리는 모든 파일을 저장하기 위해 rackspace CloudFiles (개인)를 사용하고 있으며 모든 것이 잘 작동합니다.Rackspace CloudFiles HTTP 임시 URL (HTTPS 아님)

문제는 Android 사용자에게 동영상을 가져 오는 것입니다 (Android는 HTTPS 미디어 파일을 재생하지 않습니다).

이 문제를 해결하려면 HTTPS 링크없이 임시 URL을 만드는 방법을 찾고 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다.

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이 요청 유형, 만료 및 개체 경로 만 요청합니다 (are not signed with the protocol). HTTPS에 유효한 토큰은 HTTP에도 똑같이 유효합니다.

안개를 사용하는 경우 옵션 스키마에 HTTP를 설정하거나 scheme: 'http'을 전달하면 쉽게 안개를 사용할 수 있습니다.

+0

안녕하세요 콜린, 나는 그것을 시도하고 연결이 거부 된 오류가 발생합니다. 게시하려면 코드를 추가하겠습니다. 오류를 발견하면 알려주십시오. 감사. – ehay

+0

@ehay Crud. 이 작업을하는 동안 사용되는, 조금 주위에 그것을 파고 후에 * 나타납니다 * Rackspace 더 이상 HTTP를 통해 클라우드 파일을 제공합니다. 지원을 통해 확인할 수 있습니다. 액세스 제어가 필요하지 않으면 CDN 지원 컨테이너가 HTTP를 확실히 지원하고 훨씬 더 빠르게로드됩니다. – colinm

+0

액세스 제어가 필요한 경우 Amazon CloudFront에서 현재이를 제공합니다. Rackspace CDN에 대한 액세스 제어 고려에 대한 논의가 있었지만 어디에도없는 것으로 보입니다. 관심을 표명하기 위해 [CDN 조사] (https://surveys.rackspace.com/Survey.aspx?s=0d01aa500cea4dbd9d6d8043e1d23e6e)를 할 수 있습니다. – colinm