希望能增加获取有时效性url链接地址的方法
wuguanghai45 opened this issue · 7 comments
算法是从qiniu ruby-sdk上参考的。。因为项目需要文件url过时。。找了半天。。
require "hmac-sha1"
def authorize_url(url = self.url, auth_time = 1.hour)
auth_url = "#{url}?e=#{(Time.now + auth_time).to_i}"
sign = HMAC::SHA1.new(self.qiniu_secret_key).update(auth_url).digest
token = Base64.encode64(sign).strip.gsub('+', '-').gsub('/','_').gsub(/\r?\n/, '')
"#{auth_url}&token=#{self.qiniu_access_key}:#{token}"
end
@wuguanghai45
你可以先使用 这个branch:
https://github.com/huobazi/carrierwave-qiniu/tree/private_url_expires_in
增加了一个 qiniu_private_url_expires_in
的配置 默认是 3600 秒
也非常期望你能够有使用上的反馈,谢谢。
我使用了提供的branch,同时把quint也更新到了 6.4.1版本, Gemfile如下:
gem 'qiniu', "~> 6.4.1"
gem 'carrierwave-qiniu', git: 'https://github.com/huobazi/carrierwave-qiniu.git',
branch: 'private_url_expires_in'
同时添加了qiniu_private_url_expires_in配置:
config.qiniu_private_url_expires_in = 315_360_000
然后就不能工作了,就是在报这个错:
NoMethodError - undefined method `[]=' for nil:NilClass:
qiniu (6.4.1) lib/qiniu/upload.rb:54:in `upload_with_token_2'
qiniu (6.4.1) lib/qiniu/upload.rb:102:in `upload_with_put_policy'
/Users/jianpingzhou/.bundler/ruby/2.0.0/carrierwave-qiniu-0992f9b0cf42/lib/carrierwave/storage/qiniu.rb:38:in `store'
/Users/jianpingzhou/.bundler/ruby/2.0.0/carrierwave-qiniu-0992f9b0cf42/lib/carrierwave/storage/qiniu.rb:102:in `store'
/Users/jianpingzhou/.bundler/ruby/2.0.0/carrierwave-qiniu-0992f9b0cf42/lib/carrierwave/storage/qiniu.rb:163:in `store!'
carrierwave (0.10.0) lib/carrierwave/uploader/store.rb:59:in `block in store!'
carrierwave (0.10.0) lib/carrierwave/uploader/callbacks.rb:17:in `with_callbacks'
carrierwave (0.10.0) lib/carrierwave/uploader/store.rb:58:in `store!'
carrierwave (0.10.0) lib/carrierwave/mount.rb:375:in `store!'
carrierwave (0.10.0) lib/carrierwave/mount.rb:207:in `store_data!'
因为qiniu对private图片有默认的过期时间,可是我不希望图片过期,最少在2037年之前不会过期。
所以修改了设置。
Any idea? Thanks.
。。。不过期就直接用原来的就行了把,
config.qiniu_bucket_private= false
@CocaColaCat
已经在 private_url_expires_in 分支 修正
ref #22
ref 28c031b
ref 41f765a
拉了新代码,OK了。周末还要修bug,辛苦了。:smile:
之前的分支 ref (28c031b) 有 bug,我 fork 并做了修改。已经发了pull request.
@CocaColaCat 已 merge 感谢您的贡献!