开发者社区> 问答> 正文

OSS如何实现授权给第三方下载?

当您希望将私有Bucket内部的Object授权给第三方下载的时候,不应该直接将AccessKey提供给下载者,而应该使用以下两种方法。

URL签名


OSS提供了签名下载的方法。在实现中,开发者在URL中加入签名信息,把该URL转给第三方实现授权访问。第三方用户只需要使用HTTP的GET请求访问此URL即可下载Object。

实现方式


URL中包含签名示例如下:

  1. [backcolor=transparent]http[backcolor=transparent]:[backcolor=transparent]//<bucket>.<region>.aliyuncs.com/<object>?OSSAccessKeyId=<user access_key_id>&Expires=<unix time>&Signature=<signature_string>

在URL中实现签名,必须至少包含Signature,Expires,OSSAccessKeyId三个参数。
  • OSSAccessKeyId:开发者的AccessKeyId。
  • Expires:开发者期望URL过期的时间。
  • Signature:开发者签名的字符串,具体请参考API文档签名部分

[backcolor=transparent]注意:此连接需要进行URL编码。


功能使用参考


[backcolor=transparent]注意: 在控制台中只有当Bucket处于私有读写权限的时候,获取的访问地址才是这种URL中签名的形式。否则则为不带签名的URL形式。


临时访问凭证


OSS通过STS (Security Token Service) 提供了临时凭证给第三方用户,第三方用户以在请求头部中带签名的方式去访问Object。这种授权方式适合移动场景的下载。临时访问凭证实现见 STS Java SDK

实现方式


第三方用户向APP服务器请求,获取了STS颁发的AccessKeyId, AccessKeySecret以及STS Token。第三方用户以STS AccessKeyId和AccessKeySecret以及STS Token签名,去请求开发者的Object的资源。

功能使用参考



最佳实践



相关参考链接

展开
收起
青衫无名 2017-10-17 15:34:48 4279 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载