Object Storage Service (OSS) は、RESTful API 操作を使用してサービスを提供し、各バケットにデフォルトのエンドポイントを割り当てます。
フォーマット
GetService (ListBuckets) および DescribeRegions リクエストを除き、OSS ドメイン名経由の OSS へのすべてのリクエストには、ドメイン名にバケット情報が含まれています。
バケットへのアクセスに使用するドメイン名は、BucketName.Endpoint
形式です。ここで、BucketName はバケットの名前、Endpoint はバケットが配置されているリージョンのエンドポイントです。
OSS エンドポイントには、内部エンドポイント、パブリックエンドポイント、およびアクセラレーションエンドポイントが含まれます。たとえば、中国 (杭州) リージョンにあるバケットにアクセスするには、次のエンドポイントを使用します。
パブリックエンドポイント
追加の構成なしでパブリックエンドポイントを使用できます。
oss-cn-hangzhou.aliyuncs.com
内部エンドポイント
追加の構成なしで内部エンドポイントを使用できます。
oss-cn-hangzhou-internal.aliyuncs.com
アクセラレーションエンドポイント
アクセラレーションエンドポイントには、グローバルアクセラレーションエンドポイントと中国本土以外のリージョンのアクセラレーションエンドポイントが含まれます。
グローバルアクセラレーションエンドポイント
oss-accelerate.aliyuncs.com
中国本土以外のリージョンのアクセラレーションエンドポイント
oss-accelerate-overseas.aliyuncs.com
パブリックネットワーク経由で OSS にアクセスする
パブリックネットワークはインターネットです。OSS を使用すると、インターネット経由で OSS にデータを無料でアップロードまたは書き込むことができます。OSS からデータをダウンロードまたは読み取る場合は課金されます。
インターネット経由で OSS にアクセスするには、次のいずれかの方法を使用できます。
方法 1: URL を使用して OSS オブジェクトにアクセスする
URL を使用して OSS オブジェクトにアクセスする場合、オブジェクトに対して構成されているアクセス制御リスト (ACL) によって、オブジェクトの読み取りと書き込みが可能かどうかが決まります。
オブジェクト ACL | 公開読み取りまたは公開読み書き | 非公開 |
URL 形式 |
|
|
パラメーターの説明 |
| プライベートオブジェクトにアクセスするために使用される URL には、公開読み取りおよび公開読み書きオブジェクトの URL のすべてのパラメーターに加えて、署名情報が含まれています。URL の署名情報には、Expires、AccessKey ID、および Signature パラメーターが含まれます。Expires パラメーターは、URL の有効期限を指定します。 オブジェクト URL に署名を追加する方法については、「URL に署名を追加する」をご参照ください。 |
例 | 中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。バケットには example.txt オブジェクトが含まれています。オブジェクトは exampledir ディレクトリにあり、匿名アクセスを許可します。この場合、オブジェクト URL は | 中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。バケットには example.txt オブジェクトが含まれています。オブジェクトは exampledir ディレクトリにあります。オブジェクトの ACL は非公開に設定されています。この場合、オブジェクト URL は |
方法 2: OSS SDK を使用してパブリックエンドポイントを構成する
OSS SDK は、各操作に指定したエンドポイントを連結します。操作を実行するバケットが配置されているリージョンに基づいてエンドポイントを指定する必要があります。
次のサンプルコードは、OSS SDK for Java を使用してエンドポイントを指定する方法の例を示しています。この例では、中国 (杭州) リージョンにあるバケットを管理するために OSSClient が作成されるときにエンドポイントが指定されます。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
内部ネットワーク経由で OSS にアクセスする
同じリージョン内にある Alibaba Cloud サービス間で内部ネットワーク経由で通信するには、内部エンドポイントを使用できます。たとえば、OSS バケットと ECS インスタンスが同じリージョン内にある場合、内部ネットワーク経由で ECS インスタンスから OSS バケットにアクセスできます。内部ネットワーク経由で生成されたトラフィックについては課金されません。ただし、送信したリクエストについては課金されます。
内部ネットワーク経由で OSS にアクセスするには、次のいずれかの方法を使用できます。
方法 1: URL を使用して OSS オブジェクトにアクセスする
URL を使用して OSS オブジェクトにアクセスする場合、オブジェクトに対して構成されている ACL によって、オブジェクトの読み取りと書き込みが可能かどうかが決まります。
オブジェクト ACL | 公開読み取りまたは公開読み書き | 非公開 |
URL 形式 |
|
|
パラメーターの説明 |
| プライベートオブジェクトにアクセスするために使用される URL には、公開読み取りおよび公開読み書きオブジェクトの URL のすべてのパラメーターに加えて、署名情報が含まれています。URL の署名情報には、Expires、AccessKey ID、および Signature パラメーターが含まれます。Expires パラメーターは、URL の有効期限を指定します。 オブジェクト URL に署名を追加する方法については、「URL に署名を追加する」をご参照ください。 |
例 | 中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。バケットには example.txt オブジェクトが含まれています。オブジェクトは exampledir ディレクトリにあり、匿名アクセスを許可します。オブジェクト URL は | 中国 (杭州) リージョンに examplebucket という名前のバケットを作成します。バケットには example.txt オブジェクトが含まれています。オブジェクトは exampledir ディレクトリにあります。オブジェクトの ACL は非公開に設定されています。この場合、オブジェクト URL は |
方法 2: OSS SDK を使用して内部エンドポイントを構成し、内部ネットワーク経由で ECS インスタンスから OSS にアクセスする
次のサンプルコードは、OSS SDK for Java を使用して内部エンドポイントを指定する方法の例を示しています。この例では、エンドポイントは、中国 (杭州) リージョンにあるバケットを管理するために、中国 (杭州) リージョンの内部エンドポイントに設定されています。
import com.aliyun.oss.common.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou-internal.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
OSS バケットと ECS インスタンスが同じリージョンにある場合、内部エンドポイントを使用して、内部ネットワーク経由で ECS インスタンスから OSS バケットにアクセスできます。OSS バケットと ECS インスタンスが異なるリージョンにある場合、内部エンドポイントを使用して、内部ネットワーク経由で ECS インスタンスから OSS バケットにアクセスすることはできません。たとえば、2 つの OSS バケットがあり、中国 (北京) リージョンにある ECS インスタンスを購入したとします。
1 つのバケットの名前は srcbucket で、中国 (北京) リージョンにあります。
https://srcbucket.oss-cn-beijing-internal.aliyuncs.com
を使用して、中国 (北京) リージョンにある ECS インスタンスから srcbucket 内のリソースにアクセスできます。もう 1 つのバケットの名前は destbucket で、中国 (青島) リージョンにあります。
https://destbucket.oss-cn-qingdao-internal.aliyuncs.com
を使用して、中国 (北京) リージョンにある ECS インスタンスから destbucket 内のリソースにアクセスすることはできません。中国 (北京) リージョンにある ECS インスタンスから destbucket 内のリソースにアクセスするには、https://destbucket.oss-cn-qingdao.aliyuncs.com
を使用してインターネット経由で destbucket 内のリソースにアクセスする必要があります。
アクセラレーションエンドポイントを使用して OSS にアクセスする
OSS は、国やリージョンをまたがるデータのアップロードとダウンロードのデータ転送を高速化するための転送アクセラレーション機能を提供します。アクセラレーションエンドポイントを使用して OSS のバケットにアクセスするには、バケットの 転送アクセラレーションを有効にする 必要があります。バケットの転送アクセラレーションを有効にすると、パブリックエンドポイントの代わりにアクセラレーションエンドポイントを使用してバケットにアクセスし、データ転送を高速化できます。
たとえば、ブラウザから examplebucket バケットのルートディレクトリにある myphoto.jpg オブジェクトにアクセスし、グローバルアクセラレーションエンドポイントを使用してアクセスを高速化するとします。オブジェクトの ACL は公開読み取りまたは公開読み書きです。この場合、オブジェクトの URL は https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg
です。
myphoto.jpg オブジェクトの ACL が非公開の場合、オブジェクト URL に署名情報を追加する必要があります。例: https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg?OSSAccessKeyId=nz2p***********&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272Y********
。オブジェクト URL に署名を追加する方法については、「URL に署名を追加する」をご参照ください。
参照
異なるリージョンには、異なるエンドポイントを使用してアクセスします。詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックにリストされているエンドポイントは IPv4 ドメイン名です。IPv6 経由で OSS バケットにアクセスする場合は、IPv6 をサポートするエンドポイントを使用する必要があります。詳細については、「IPv6 をサポートするエンドポイントを使用して OSS にアクセスする」をご参照ください。
異なるリージョンにある ECS インスタンスまたはオンプレミスデータセンターのデバイスから内部ネットワーク経由で OSS バケットにアクセスするには、Cloud Enterprise Network (CEN)、Express Connect、専用回線、または VPN を使用して、OSS バケットが配置されているリージョンの内部ネットワークに接続できます。次に、内部ネットワークの仮想 IP アドレス (VIP) 範囲に転送するルートを構成できます。詳細については、「内部 OSS エンドポイントと VIP 範囲」をご参照ください。
カスタムドメイン名をマッピングする ことができ、そのドメイン名を使用してバケット内のリソースにアクセスできます。たとえば、
static.example.com
カスタムドメイン名をバケットにマッピングし、そのドメイン名を使用してバケット内のリソースにアクセスできます。オブジェクトにアクセスするには、OSS ドメイン名にオブジェクトのパスを含める必要があります。たとえば、examplebucket.oss-cn-hangzhou.aliyuncs.com を使用して、OSS ドメイン名にオブジェクトのパスを含めずにオブジェクトにアクセスすると、エラーが報告されます。オブジェクトのパスを含めずに OSS エンドポイントを使用してオブジェクトにアクセスするには、静的 Web サイトホスティングを構成します。静的 Web サイトホスティング