当您希望将私有Bucket内部的Object授权给第三方下载的时候,不应该直接将AccessKey提供给下载者,而应该使用URL签名或临时访问凭证授权给第三方下载。
URL签名
OSS提供了签名下载的方法。您可以在URL中加入签名信息,把该URL转给第三方实现授权访问。第三方用户只需要使用HTTP的Get请求访问此URL即可下载Object。
- 示例
http://<bucket>.<region>.aliyuncs.com/<object>?OSSAccessKeyId=<user access_key_id>&Expires=<unix time>&Signature=<signature_string>
此链接需要进行URL编码。在URL中实现签名,必须至少包含OSSAccessKeyId、Expires、Signature三个参数:- OSSAccessKeyId:您的AccessKey ID。
- Expires:您期望URL过期的时间。
- Signature:您签名的字符串,具体请参见在URL中包含签名。
- 操作方法
临时访问凭证
OSS可以通过阿里云STS(Security Token Service)进行临时授权访问。通过STS,您可以为第三方应用或子用户(即用户身份由您自己管理的用户)颁发一个自定义时效和权限的访问凭证。这种授权方式适合移动场景的下载。详情请参见STS临时授权访问OSS。
- 实现方式
第三方用户向App服务器请求,获取STS颁发的AccessKey ID、AccessKey Secret以及STS Token,并以此去请求开发者的Object资源。
- 操作方法