全部产品
Search
文档中心

对象存储 OSS:使用REST API或阿里云SDK向OSS发起请求

更新时间:Nov 29, 2024

OSS是一个REST服务。您可以使用REST API或封装了REST API的阿里云SDK向OSS发起请求。认证系统收到请求后,会通过凭证验证请求的发送者身份。身份验证成功后,您可以操作相应的OSS资源。

发起请求

您可以使用以下方式向OSS发起请求:

  • 阿里云SDK:使用阿里云SDK发起请求,可以免去手动签名的过程。大部分情况下,推荐您使用阿里云SDK发起请求。详情请参见使用阿里云SDK发起请求

  • REST API:直接发起REST API请求,需要手动编写代码计算签名并将签名添加到请求中。使用REST API发起请求适用于对程序自定义要求较高的场景。详情请参见使用REST API发起请求

身份验证

当用户以个人身份向OSS发送请求时,身份验证的实现如下:

  1. 用户将发送的请求按照指定的格式生成签名字符串。

  2. 用户使用AccessKey Secret对签名字符串进行加密产生验证码。

  3. 认证系统收到请求后,通过AccessKey ID找到对应的AccessKey Secret,并以同样的方法提取签名字符串和验证码。

    • 如果计算出来的验证码和提供的一致,OSS认为该请求有效。

    • 如果计算出来的验证码和提供的不一致,OSS将拒绝处理这次请求,并返回HTTP 403错误。

访问密钥

访问密钥指的是访问身份验证中用到的AccessKey ID和AccessKey Secret。AccessKey ID和AccessKey Secret一起使用,AccessKey ID用于标识用户,AccessKey Secret用于验证用户的密钥。您可以使用访问密钥创建一个REST API请求,OSS使用AccessKey ID和AccessKey Secret对称加密的方法来验证某个请求的发送者身份。身份验证成功后,您将可以操作相应的OSS资源。

说明

RAM用户的AccessKey Secret只在创建时显示,不支持查询,请妥善保管。

阿里云账号访问密钥

开始使用阿里云服务前,首先需要注册一个阿里云账号。阿里云账号是阿里云资源归属、资源使用计量计费的基本主体。阿里云账号为其名下所拥有的资源付费,并对其名下所有资源拥有完全控制权限。

默认情况下,资源只能被阿里云账号所访问,任何其他用户访问都需要获得阿里云账号的显式授权。阿里云账号就是操作系统的root或Administrator,所以我们有时称它为根账号或主账号。

阿里云账号访问密钥具有所有资源的访问权限。每个阿里云账号能够同时拥有不超过5个访问密钥。每个访问密钥都有以下两种状态:

  • Active:表明访问密钥处于激活状态,可以在身份验证的时候使用。

  • Inactive:表明访问密钥处于非激活状态,不能在身份验证的时候使用。

说明

为保证账号安全,强烈建议您不要使用阿里云账号访问密钥,而使用RAM用户访问密钥。

RAM用户访问密钥

RAM用户也叫RAM账号,是RAM的一种实体身份类型,有确定的身份ID和身份凭证,它通常与某个确定的人或应用程序一一对应。RAM用户具备以下特点:

  • 一个阿里云账号下可以创建多个RAM用户,对应企业内的员工、系统或应用程序。

  • RAM用户不拥有资源,不能独立计量计费,由所属阿里云账号统一控制和付费。

  • RAM用户归属于阿里云账号,只能在所属阿里云账号的空间下可见,而不是独立的阿里云账号。

  • RAM用户必须在获得阿里云账号的授权后才能登录控制台或使用API操作阿里云账号下的资源。

RAM用户访问密钥指的是RAM用户被授权的访问密钥。RAM用户访问密钥只能按照RAM定义的规则去访问Bucket里的资源。通过RAM用户访问密钥,您可以集中管理您的用户(例如员工、系统或应用程序),以及控制用户可以访问您名下哪些资源的权限。例如,能够限制您的用户只拥有对某一个Bucket的读权限。

临时访问凭证

除了具备永久访问凭证的RAM用户,阿里云还提供具备临时访问凭证的RAM角色。RAM角色是一种虚拟用户,可以被授予一组权限策略。与RAM用户不同,RAM角色没有确定的登录密码或访问密钥,它需要被一个可信的实体用户(RAM用户、阿里云服务或身份提供商)扮演。扮演成功后实体用户将获得RAM角色的临时访问凭证,即安全令牌(STS Token),使用安全令牌就能以RAM角色身份访问被授权的资源。

RAM角色的临时访问凭证只能按照STS定义的规则去访问Bucket里的资源。

访问域名

您可以向OSS提供的默认访问域名发送请求。详情请参见OSS地域和访问域名

说明

如果您希望通过自定义域名访问OSS资源,您需要绑定自定义域名。 详情请参见绑定自定义域名至Bucket默认域名

后续参考