Object Storage Service (OSS) は、各バケットにドメイン名を割り当てます。 このトピックでは、OSSドメイン名の構成とドメイン名の使用方法について説明します。
Format
GetService (ListBuckets) およびDescribeRegionsリクエストを除く、OSSドメイン名を介したOSSへのすべてのリクエストには、ドメイン名にバケット情報が含まれています。
バケットへのアクセスに使用されるドメイン名は、BucketName.Endpoint
形式です。ここで、BucketNameはバケットの名前、Endpointはバケットが配置されているリージョンのエンドポイントです。
OSSエンドポイントには、内部エンドポイント、パブリックエンドポイント、アクセラレーションエンドポイントが含まれます。
OSSはRESTful API操作を使用してサービスを提供します。 アクセスするリージョンによって使用するエンドポイントは異なります。 詳細は、「リージョンとエンドポイント」をご参照ください。
追加の設定なしで、内部エンドポイントとパブリックエンドポイントを使用できます。
アクセラレーションエンドポイントを使用する前に、転送アクセラレーション機能を有効にする必要があります。 詳細については、「転送アクセラレーションの有効化」をご参照ください。
パブリックエンドポイントをカスタムドメイン名に置き換えて、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) によって、オブジェクトを読み書きできるかどうかが決まります。
オブジェクトにアクセスするには、OSSドメイン名にオブジェクトのパスを含める必要があります。 たとえば、OSSドメイン名にオブジェクトのパスを含めずにオブジェクトにアクセスすることをe examplebucket.oss-cn-hangzhou.aliyuncs.comした場合、エラーが報告されます。 オブジェクトのパスを含めずにOSSドメイン名を使用してオブジェクトにアクセスするには、静的Webサイトホスティングを設定します。 詳細については、「概要」をご参照ください。
オブジェクトACL | パブリック読み取りまたはパブリック読み取り書き込み | プライベート |
URL形式 |
|
|
説明 |
| プライベートオブジェクトへのアクセスに使用されるURLには、public-readオブジェクトおよびpublic-read-writeオブジェクトのURLのすべてのパラメーターと署名情報があります。 URLの署名情報には、Expires、AccessKey ID、およびsignatureパラメーターが含まれます。 Expiresパラメーターは、URLの有効期限を指定します。 オブジェクトURLに署名を追加する方法の詳細については、「URLに署名を追加する」をご参照ください。 |
例 | 中国 (杭州) リージョンにexamplebucketという名前のバケットを作成します。 バケットにはexample.txtオブジェクトが含まれています。 オブジェクトはexampledirディレクトリにあり、匿名アクセスを許可します。 この場合、オブジェクトURLは | 中国 (杭州) リージョンにexamplebucketという名前のバケットを作成します。 バケットにはexample.txtオブジェクトが含まれています。 オブジェクトはexampledirディレクトリにあります。 オブジェクトのACLはprivateに設定されています。 この場合、オブジェクトURLは、 |
方法2: OSS SDKを使用してパブリックエンドポイントを設定する
OSS SDKは、各操作に指定したエンドポイントを連結します。 操作を実行するバケットが存在するリージョンに基づいて、エンドポイントを指定する必要があります。
次のサンプルコードは、OSS SDK for Javaを使用してエンドポイントを指定する方法の例を示しています。 この例では、OSSClientが中国 (杭州) リージョンにあるバケットを管理するために作成されるときに、エンドポイントが指定されます。
impor t com.aliyun.oss.com mon.auth.*;
EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);
内部ネットワーク経由でのOSSへのアクセス
内部エンドポイントを使用して、内部ネットワークを介して同じリージョン内にあるAlibaba Cloudサービス間で通信できます。 たとえば、OSSバケットとECSインスタンスが同じリージョン内にある場合、内部ネットワークを介してElastic Compute Service (ECS) インスタンスからOSSバケットにアクセスできます。 内部ネットワークを介して生成されたトラフィックに対しては課金されません。 ただし、送信したリクエストに対しては課金されます。
次のいずれかの方法を使用して、内部ネットワーク経由でOSSにアクセスできます。
方法1: URLを使用してOSSオブジェクトにアクセスする
URLを使用してOSSオブジェクトにアクセスする場合、オブジェクトに設定されているACLによって、オブジェクトを読み書きできるかどうかが決まります。
オブジェクトACL | パブリック読み取りまたはパブリック読み取り書き込み | プライベート |
URL形式 |
|
|
説明 |
| プライベートオブジェクトへのアクセスに使用されるURLには、public-readオブジェクトおよびpublic-read-writeオブジェクトのURLのすべてのパラメーターと署名情報があります。 URLの署名情報には、Expires、AccessKey ID、およびsignatureパラメーターが含まれます。 Expiresパラメーターは、URLの有効期限を指定します。 オブジェクトURLに署名を追加する方法の詳細については、「URLに署名を追加する」をご参照ください。 |
例 | 中国 (杭州) リージョンにexamplebucketという名前のバケットを作成します。 バケットにはexample.txtオブジェクトが含まれています。 オブジェクトはexampledirディレクトリにあり、匿名アクセスを許可します。 オブジェクトURLは | 中国 (杭州) リージョンにexamplebucketという名前のバケットを作成します。 バケットにはexample.txtオブジェクトが含まれています。 オブジェクトはexampledirディレクトリにあります。 オブジェクトのACLはprivateに設定されています。 この場合、オブジェクトURLは、 |
方法2: OSS SDKを使用して内部エンドポイントを設定し、内部ネットワークを介してECSインスタンスからOSSにアクセスする
次のサンプルコードは、OSS SDK for Javaを使用して内部エンドポイントを指定する方法の例を示しています。 この例では、中国 (杭州) リージョンにあるバケットを管理するために、エンドポイントが中国 (杭州) リージョンの内部エンドポイントに設定されています。
impor t com.aliyun.oss.com mon.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バケットにアクセスすることはできません。 たとえば、OSSバケットが2つあり、中国 (北京) リージョンにある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は、public-readまたはpublic-read-writeです。 この場合、オブジェクトのURLがhttps://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg
されます。
myphoto.jpgオブジェクトのACLが非公開の場合、署名情報をオブジェクトのURLに追加する必要があります。 例: https://examplebucket.oss-accelerate.aliyuncs.com/myphoto.jpg?OSSAccessKeyId=nz2pc56s936 ****&Expires=1141889120&Signature=vjbyPxybdZaNmGa % 2ByT272YEAiv ****
オブジェクトURLに署名を追加する方法の詳細については、「URLに署名を追加する」をご参照ください。
転送アクセラレーションの詳細については、「転送アクセラレーションの有効化」をご参照ください。
IPv6をサポートするエンドポイントを使用したOSSへのアクセス
インターネットプロトコルバージョン6 (IPv6) は、インターネットプロトコルバージョン4 (IPv4) を置き換えるためにインターネットエンジニアリングタスクフォース (IETF) によって開発されたインターネットプロトコルの最新バージョンです。 IPv6は、将来の要件を満たすのに十分なIPアドレスを提供できます。 IPv4とIPv6の両方をサポートするデュアルスタックエンドポイントを使用してOSSにアクセスできます。
デュアルスタックエンドポイントを使用して、クライアントからバケットにアクセスできます。 ドメインネームシステム (DNS) サーバーは、エンドポイントをIPv6またはIPv4アドレスに解決し、クライアントが使用するプロトコルに基づいてOSSサーバーアドレスを返します。 たとえば、中国 (杭州) リージョンのパブリックエンドポイントはcn-hangzhou.oss.aliyuncs.com
です。 このリージョンにexamplebucketという名前のバケットがある場合、IPv4クライアントとIPv6クライアントから同じドメイン名 (https://examplebucket.cn-hangzhou.oss.aliyuncs.com
) を使用してバケットにアクセスできます。
IPv4またはIPv6を使用して、クラシックネットワーク経由でECSからOSSにアクセスすることはできません。
次のエンドポイントを使用して、IPv6経由でOSSにアクセスできます。
OSSコンソールには、IPv4をサポートするエンドポイントのみが表示されます。 IPv6をサポートするエンドポイントは、OSSバケットへのアクセスにも使用できます。 次の表では、IPv6をサポートするエンドポイントについて説明します。 エンドポイントの詳細については、「リージョンおよびエンドポイント」をご参照ください。
リージョン | Endpoint |
中国 (杭州) | cn-hangzhou.oss.aliyuncs.com |
中国 (上海) | cn-shanghai.oss.aliyuncs.com |
中国 (青島) | cn-qingdao.oss.aliyuncs.com |
中国 (北京) | cn-beijing.oss.aliyuncs.com |
中国 (張家口) | cn-zhangjiakou.oss.aliyuncs.com |
中国 (フフホト) | cn-huhehaote.oss.aliyuncs.com |
中国 (ウランチャブ) | cn-wulanchabu.oss.aliyuncs.com |
中国 (深セン) | cn-shenzhen.oss.aliyuncs.com |
中国 (河源) | cn-heyuan.oss.aliyuncs.com |
中国 (広州) | cn-guangzhou.oss.aliyuncs.com |
中国 (成都) | cn-chengdu.oss.aliyuncs.com |
中国 (香港) | cn-hongkong.oss.aliyuncs.com |
杭州(中国東部)金融 | cn-hangzhou-finance.oss.aliyuncs.com |
上海(中国東部)金融 | cn-shanghai-finance.oss.aliyuncs.com |
China South 1ファイナンス | cn-shenzhen-finance.oss.aliyuncs.com |