签名过程涉及到的概念
AccessKey: 公钥,简称ak
SecretKey: 密钥,可以在平台申请,简称sk
Signature: 利用公钥,密钥和用户的请求内容算出的签名。用来验证用户。
每次请求都需要把相应的签名通过querystring的方式发送,比如:
Sign=MBO:aCLCZtoFQg8I:WQMFNZEhN2k8xxlgikuPfCJMuE8%3D
签名组成
Sign=Flag:AccessKey:Signature
Flag: 表明签名的对象。云存储需要根据Flag来判断签名的具体对象。
Flag=[M|B|O|T|I|S],可以是多个组合,但是必须顺序给出。
M: 请求的method, 可以是[PUT|GET|POST|DELETE|HEAD]
B: bucket name
O: object name
T: 链接的有效截止时间。 比如 time=1312956443表明在时间点Wed Aug 10 2011 14:07:23前有效
I: 访问ip限制。比如ip=192.168.0.1表示只有此ip能访问该链接
S:限制上传object大小,比如size=100,表示不能上传大小超过100B的object
AccessKey: 参考如上介绍
Signature: 签名
Signture=urlencode(base64_encode(hash_hmac('sha1', Content, SecretKey,true)))
content由Flag、 bucket、object,