您可以直接发起REST API请求。使用REST API发起请求适用于对程序自定义要求较高的场景。您需要手动编写代码计算签名并将签名添加到REST API请求中。OSS仅支持虚拟托管(Virtual Hosted)风格的REST API请求。

OSS域名构成规则

针对OSS的网络请求,除了GetService (ListBuckets)以及DescribeRegions API以外,其他所有请求的域名都是由带有指定Bucket信息的三级域名组成的。

访问域名结构为BucketName.Endpoint。BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。

Endpoint分为外网访问、内网访问以及传输加速Endpoint。传输加速Endpoint又分为全球加速Endpoint以及非中国内地加速Endpoint。例如华东1(杭州)地域的访问域名如下:
  • 外网Endpoint:oss-cn-hangzhou.aliyuncs.com
  • 内网Endpoint:oss-cn-hangzhou-internal.aliyuncs.com
  • 传输加速全球加速Endpoint:oss-accelerate.aliyuncs.com
  • 传输加速非中国内地加速Endpoint:oss-accelerate-overseas.aliyuncs.com

内网、外网访问Endpoint可直接使用,无需额外配置,而传输加速Endpoint使用前需先开启Bucket的传输加速功能。详情请参见开启传输加速

说明

请求风格

基于安全考虑,OSS不支持路径(Path)风格的REST API请求,仅支持虚拟托管风格的REST API请求。在虚拟托管风格的URL中,存储空间(Bucket)名称是域名的一部分。

虚拟托管风格的URL格式如下:

https://BucketName.Endpoint/objectName

虚拟托管风格的URL示例如下:

https://examplebucket.oss-cn-hangzhou.aliyuncs.com/demo.png

请求头格式

向OSS发起的REST API请求的请求头格式如下:

GET / HTTP/1.1
Host: BucketName.Endpoint
Date: GMT Date
Authorization: SignatureValue
名称 类型 描述
Date 字符串 HTTP 1.1协议中规定的GMT时间,例如Sun, 05 Sep 2021 23:00:00 GMT。

默认值:无

Host 字符串 访问域名,格式为BucketName.Endpoint

默认值:无

Authorization 字符串 用于验证请求合法性的认证信息。

默认值:无

使用场景:非匿名请求

请求示例

虚拟托管风格请求示例

OSS资源示例如下:

  • 存储空间名称:examplebucket
  • 地域:oss-cn-hangzhou
  • 文件名称:demo.png

URL示例如下:

https://examplebucket.oss-cn-hangzhou.aliyuncs.com/demo.png

请求示例如下:

GET /demo.png HTTP/1.1
Host: examplebucket.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

自定义域名请求示例

自定义域名示例如下:

自定义域名为www.example.com。

OSS资源示例如下:

  • 存储空间名称:examplebucket
  • 文件名称:demo.png

URL示例如下:

https://www.example.com/demo.png

请求示例如下:

GET /demo.png HTTP/1.1
Host: example.com
Date: GMT Date
Authorization: SignatureValue

签名方式

您可以选择以下任意一种方式计算签名并将签名添加到REST API请求中:

  • 在请求头中包含签名:一般情况下,推荐您使用在请求头中签名的方式。详情请参见在Header中包含签名
  • 在URL中包含签名:使用在URL中签名的方式,会将授权的数据在过期时间内曝露在互联网上,具有一定的风险。该方式适用于将URL转给第三方实现授权访问的场景。详情请参见在URL中包含签名

API

关于OSS提供的REST API接口,请参见API概览