安全机制 > 下载凭证 |
下载凭证是用于对私有资源下载的授权,通过授权客户端,使其具备访问指定私有资源的能力。下载私有资源的请求需要带一个合法的下载凭证。不带凭证或带非法凭证的请求将返回 HTTP 错误码 401,代表认证失败。下载公开空间资源不需要下载凭证。 算法1.构造下载 URL: DownloadUrl = 'http://78re52.com1.z0.glb.clouddn.com/resource/flower.jpg' 2.为下载 URL 加上过期时间 e 参数,Unix时间戳: DownloadUrl = 'http://78re52.com1.z0.glb.clouddn.com/resource/flower.jpg?e=1451491200' 3.对上一步得到的 URL 字符串计算HMAC-SHA1签名(假设访问密钥(AK/SK)是 MY_SECRET_KEY),并对结果做URL 安全的 Base64 编码: Sign = hmac_sha1(DownloadUrl, 'MY_SECRET_KEY') EncodedSign = urlsafe_base64_encode(Sign) 4.将访问密钥(AK/SK)(假设是 MY_ACCESS_KEY)与上一步计算得到的结果用英文符号 : 连接起来: Token = 'MY_ACCESS_KEY:yN9WtB0lQheegAwva64yBuH3ZgU=' 5.将上述 Token 拼接到含过期时间参数 e 的 DownloadUrl 之后,作为最后的下载 URL: RealDownloadUrl = 'http://78re52.com1.z0.glb.clouddn.com/resource/flower.jpg?e=1451491200&token=MY_ACCESS_KEY:yN9WtB0lQheegAwva64yBuH3ZgU=' RealDownloadUrl 即为下载对应私有资源的可用 URL (带有参数的情况下,需要将query一起进行签名),并在指定时间后失效。失效后,可按需要重新生成下载凭证。 注意:
|