すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:RESTful APIリクエストの開始

最終更新日:Dec 10, 2024

ビジネスで高度なカスタマイズが必要な場合は、RESTful APIを直接呼び出すことができます。 APIを直接呼び出すには、コードに署名計算を含める必要があります。 Object Storage Service (OSS) は、RESTful APIリクエストで仮想ホストスタイルのURLのみをサポートします。

Format

GetService (ListBuckets) およびDescribeRegionsリクエストを除く、OSSドメイン名を介したOSSへのすべてのリクエストには、ドメイン名にバケット情報が含まれています。

バケットへのアクセスに使用されるドメイン名は、BucketName.Endpoint形式です。ここで、BucketNameはバケットの名前、Endpointはバケットが配置されているリージョンのエンドポイントです。

OSSエンドポイントには、内部エンドポイント、パブリックエンドポイント、アクセラレーションエンドポイントが含まれます。

説明
  • OSSはRESTful API操作を使用してサービスを提供します。 アクセスするリージョンによって使用するエンドポイントは異なります。 詳細は、「リージョンとエンドポイント」をご参照ください。

  • 追加の設定なしで、内部エンドポイントとパブリックエンドポイントを使用できます。

  • アクセラレーションエンドポイントを使用する前に、転送アクセラレーション機能を有効にする必要があります。 詳細については、「転送アクセラレーションの有効化」をご参照ください。

  • パブリックエンドポイントをカスタムドメイン名に置き換えて、OSSリソースにアクセスすることもできます。 詳細については、「カスタムドメイン名のマップ」または「アクセラレーションエンドポイントのマップ」をご参照ください。

たとえば、次のエンドポイントを使用して、中国 (杭州) リージョンにあるバケットにアクセスします。

リクエストスタイル

セキュリティ上の理由から、RESTful APIリクエストを開始するときは、パススタイルのURLではなく、仮想ホストスタイルのURLのみを使用できます。 仮想ホストスタイルのURLには、バケット名が含まれます。

仮想ホストスタイルURLの形式:

https://BucketName.Endpoint/objectName

仮想ホストスタイルURLの例:

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

リクエストヘッダー形式

次のコードは、OSSに送信されるRESTful APIリクエストのリクエストヘッダー形式を示しています。

GET / HTTP/1.1
Host: BucketName.Endpoint
Date: GMT Date
Authorization: SignatureValue

ヘッダー

タイプ

説明

日付

String

HTTP/1.1プロトコルで指定されたGMT時間。 例: 日曜日、9月2021日23:00:00 GMT。

このヘッダーはデフォルトでは空です。

ホスト

String

アクセスドメイン名。 形式: BucketName.Endpoint

このヘッダーはデフォルトでは空です。

権限付与

String

リクエストの有効性を検証するために使用される認証情報。

このヘッダーはデフォルトでは空です。

シナリオ: 非匿名リクエスト。

リクエストの例

仮想ホストスタイルURLのサンプルリクエスト

サンプル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

署名方法

次のいずれかの方法を使用して、署名を計算し、RESTful APIリクエストに署名を追加できます。

  • リクエストヘッダーに署名を追加する: ほとんどの場合、この方法を使用することを推奨します。 詳細については、「承認ヘッダーに署名を含める」をご参照ください。

  • URLに署名を追加する: 署名付きURLを使用してデータを共有する場合、署名付きURLの有効期間内にインターネット経由ですべてのユーザーがデータを取得できます。 これは、セキュリティリスクを引き起こす。 サードパーティのユーザーに署名情報を含むURLを提供してアクセスを許可する場合は、この方法を使用できます。 詳細については、「URLへの署名の追加」をご参照ください。

2つの署名方法の違いを次の表に示します。

項目

リクエストヘッダーへの署名の追加

URLへの署名の追加

Expiresパラメーターの設定

継続しない

一般的なリクエストメソッド

GET、POST、PUT、およびDELETE

GETとPUT

時間形式

Dateリクエストヘッダーは、GMT形式でリクエスト時間を指定するために使用されます。

重要

リクエストのDateヘッダーで指定された時間と、リクエストが受信されたサーバーの時間との差が15分を超える場合、OSSはリクエストを拒否し、HTTPステータスコード403を返します。

Expiresパラメーターは、署名付きURLがUnixタイムスタンプ形式で期限切れになる時間を指定するために使用されます。

重要

OSSがURLリクエストを受信した時刻が、署名に含まれているExpiresパラメーターの値よりも遅い場合、リクエストタイムアウトエラーが返されます。

URLエンコード署名

継続しない

API 操作

OSSが提供するAPI操作の詳細については、「関数別の操作のリスト」をご参照ください。

後続の操作の参照