qiniu / ruby-sdk

Qiniu Resource (Cloud) Storage SDK for Ruby
MIT License
164 stars 138 forks source link

remove `key` extraction #105

Closed layerssss closed 10 years ago

layerssss commented 10 years ago
longbai commented 10 years ago

@layerssss 谢谢您的建议,我来看下。

layerssss commented 10 years ago

@longbai 抱歉,我的 patch 也许不太正确,不过我的使用场景如下:

token = Qiniu::Auth.generate_uptoken({\
      scope: "puffantprodsnapshots",
      deadline: (Time.now + 60.minutes).to_i,
      insertOnly: 1,
      saveKey: "#{SecureRandom.hex(6)}$(etag)$(suffix)", # 这里用到了魔法变量
      returnBody: {url: "http://puffantprodsnapshots.qiniudn.com/$(key)"}.to_json,
      })

# 理想情况下,应该使用 Qiniu::Storage.upload_with_put_policy 方法而不需要 RestClient
result = RestClient.post 'http://upload.qiniu.com/', file: file, token: token, multipart: true
BluntBlade commented 10 years ago

@layerssss 请改用 Qiniu::Auth::PutPolicy 这个类来生成上传策略。

BluntBlade commented 10 years ago
 75       ### 授权举例
 76       # put_policy.bucket | put_policy.key | key     | 语义 | 授权
 77       # :---------------- | :------------- | :------ | :--- | :---
 78       # trivial_bucket    | <nil>          | <nil>   | 新增 | 允许,最终key为1)使用put_policy.save_key生成的值或2)资源内容的Hash值
 79       # trivial_bucket    | <nil>          | foo.txt | 新增 | 允许
 80       # trivial_bucket    | <nil>          | bar.jpg | 新增 | 允许
 81       # trivial_bucket    | foo.txt        | <nil>   | 覆盖 | 允许,由SDK将put_policy.key赋值给key实现
 82       # trivial_bucket    | foo.txt        | foo.txt | 覆盖 | 允许
 83       # trivial_bucket    | foo.txt        | bar.jpg | 覆盖 | 禁止,put_policy.key与key不一致

@layerssss 你的需求,适用第78行那种设置。

layerssss commented 10 years ago

我明白了,谢谢。

Kind regards,

Michael Yin

在 2014年8月20日,下午2:01,BluntBlade notifications@github.com 写道:

@layerssss

参考如下表格:

75 ### 授权举例 76 # put_policy.bucket | put_policy.key | key | 语义 | 授权 77 # :---------------- | :------------- | :------ | :--- | :--- 78 # trivial_bucket | | | 新增 | 允许,最终key为1)使用put_policy.save_key生成的值或2)资源内容的Hash值 79 # trivial_bucket | | foo.txt | 新增 | 允许 80 # trivial_bucket | | bar.jpg | 新增 | 允许 81 # trivial_bucket | foo.txt | | 覆盖 | 允许,由SDK将put_policy.key赋值给key实现 82 # trivial_bucket | foo.txt | foo.txt | 覆盖 | 允许 83 # trivial_bucket | foo.txt | bar.jpg | 覆盖 | 禁止,put_policy.key与key不一致

你的需求,适用第78行那个设置方法。

— Reply to this email directly or view it on GitHub.