全部產品
Search
文件中心

Object Storage Service:使用REST API發起請求

更新時間:Jun 19, 2024

您可以直接發起REST API請求。使用REST API發起請求適用於對程式自訂要求較高的情境。您需要手動編寫代碼計算簽名並將簽名添加到REST API請求中。OSS僅支援虛擬託管(Virtual Hosted)風格的REST API請求。

OSS網域名稱構成規則

針對OSS的網路請求,除了GetService(ListBuckets)以及DescribeRegions API以外,其他所有請求的網域名稱都是由帶有指定Bucket資訊的第三層網域名組成的。

訪問網域名稱結構為BucketName.Endpoint。BucketName為您的儲存空間名稱,Endpoint為儲存空間對應的地區網域名稱。

Endpoint分為外網、內網以及傳輸加速Endpoint。

說明

以華東1(杭州)地區的訪問網域名稱為例,說明如下。

請求風格

基於安全考慮,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中包含簽名:一般情況下,推薦您使用在Header中包含簽名的簽名方式。詳情請參見在Header中包含簽名

  • 在URL中包含簽名:使用在URL中籤名的方式,會將授權的資料在到期時間內曝露在互連網上,具有一定的風險。該方式適用於將URL轉給第三方實現授權訪問的情境。詳情請參見在URL中包含簽名

以上兩種簽名方式的區別如下:

專案

在Header中包含簽名

在URL中包含簽名

是否支援設定Expires

常用Method

GET、POST、PUT、DELETE

GET、PUT

時間格式

通過Date要求標頭表示請求時間,格式為GMT。

重要

如果Date表示的請求時間和OSS伺服器的目前時間差15分鐘以上,OSS伺服器將拒絕該請求,並返回HTTP 403錯誤。

通過Expires欄位表示到期時間,格式為Unix時間戳記。

重要

如果OSS接收到該URL請求的時間晚於簽名中包含的Expires參數時,則返回請求逾時錯誤。

Signature是否需要URL編碼

API

關於OSS提供的REST API介面,請參見API概覽