您可以直接发起REST API请求。使用REST API发起请求适用于对程序自定义要求较高的场景。您需要手动编写代码计算签名并将签名添加到REST API请求中。OSS仅支持虚拟托管(Virtual Hosted)风格的REST API请求。
OSS域名构成规则
针对OSS的网络请求,除了GetService (ListBuckets)以及DescribeRegions API以外,其他所有请求的域名都是由带有指定Bucket信息的三级域名组成的。
访问域名结构为BucketName.Endpoint
。BucketName为您的存储空间名称,Endpoint为存储空间对应的地域域名。
- 外网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概览。