七牛有从Url获取资源的fetch api, 给出的请求语法如下:
POST /fetch/<EncodedURL>/to/<EncodedEntryURI> HTTP/1.1
Host: iovip.qbox.me
Content-Type: application/x-www-form-urlencoded
Authorization: QBox <AccessToken>
请求示例:
curl -i \
-o - \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: QBox u8WqmQu1jH21kxpIQmo2LqntzugM1VoHE9_pozCU:2LJIG...' \
-X POST \
'http://iovip.qbox.me/fetch/aHR0cDovL3Fpbml1LmNvbS9pbmRleC5odG1s/to/bmV3ZG9jczpmaW5kLm1hbi50eHQ='
我现在想在rails应用中使用该api, 请问是写在controller中好,还是在view中写form好一些?
我现在在controller的action中代码:
remote_url = "http://n4ke-kne.mp4" #比如是一个视频文件地址
enc_remote_url = Qiniu::Utils.urlsafe_base64_encode(remote_url)
encode_entry_uri = Qiniu::Utils.encode_entry_uri('thebeast',"#{Time.now}.mp4")
path = "/fetch/#{enc_dl_url}/to/#{encode_entry_uri}HTTP/1.1"
signing_str = path+"\n"
encoded_sign = HMAC::SHA1.digest(signing_str,Qiniu::Config.settings[:secret_key])
post path, nil, {"Content-Type": "application/x-www-form-urlencoded","Host"=>"iovip.qbox.me","Athorization"=>"QBox #{Qiniu::Config.settings[:access_key]}:#{encoded_sign}"}
报错为: undefined method 'post'
请大家帮我看一下, 这个问题怎么解决好一些. 如果写成form, 怎么实现?先谢谢各位了
感觉这样可行