OSS は各バケットに対して一連のデフォルトアクセスドメイン名を割り当て、ビジネス要件やネットワーク環境(パブリックネットワーク、プライベートネットワーク、転送アクセラレーションネットワーク)に応じて柔軟に OSS リソースにアクセスできます。
基本概念
標準的な OSS アクセスアドレスは複数の階層で構成されています。OSS への正しいアクセスには、以下の 4 つの基本概念を正確に理解することが重要です。
概念 | 説明 | 例 | 目的 |
リージョン ID | 汎用リージョン識別子 |
| SDK や ossutil V4 署名シナリオで使用します。 |
専用リージョン ID | OSS 専用リージョン識別子 |
| エンドポイントの構成、API 入力パラメーター、戻り値パラメーターなどのシナリオで使用します。 |
エンドポイント | サービスアクセスアドレス |
| SDK や ossutil で設定し、OSS サービスとのネットワーク接続を確立します。 |
バケットドメイン | 特定のバケットアクセスアドレス |
| ブラウザからの直接アクセス、署名付き URL の生成、静的 Web サイトのホスティング、カスタムドメインの CNAME 解決などのシナリオで使用します。 |
これら 4 つの概念は階層的な関係にあります。リージョン ID は地理的位置を表し、OSS はこれに対応する専用リージョン ID を割り当てます。この専用リージョン ID とドメインサフィックスを組み合わせてエンドポイント(サービスアクセスアドレス)が形成されます。特定のバケットにアクセスする際は、バケット名とエンドポイントを組み合わせたバケットドメイン名(リソースアクセスアドレス)を使用します。
ドメイン名の種類
OSS はネットワーク環境やパフォーマンス要件に基づき、さまざまなタイプのアクセスドメイン名を提供します。
コンプライアンスとセキュリティを向上させるためのポリシー変更により、2025 年 3 月 20 日以降、新しい OSS ユーザーは、中国本土リージョンにある OSS バケットに対してデータ API オペレーションを実行する際にカスタムドメイン名を使用する必要があります(CNAME ドメイン名)。これらのオペレーションでは、デフォルトのパブリックエンドポイントが制限されています。公式アナウンスを参照して、影響を受けるオペレーションの完全なリストをご確認ください。HTTPS 経由でデータにアクセスする場合は、カスタムドメインに有効な SSL 証明書をバインドする必要があります。これは、コンソールが HTTPS を強制するため、OSS コンソールへのアクセスに必須です。
インターネットアクセスドメイン名
インターネットアクセス専用で、Web アプリケーション、モバイルクライアント、クロスリージョンアクセスなどのシナリオに適しています。
ドメインフォーマット
エンドポイント:
oss-[RegionID].aliyuncs.comバケットドメイン:
[BucketName].oss-[RegionID].aliyuncs.com
アクセス例
ファイル URL
以下の例は、コンソールを通じて非公開バケット内のファイルの署名付き URL を取得する方法を示しています。署名付き URL を取得する他の方法については、「署名付き URL を使用したファイルのダウンロードまたはプレビュー」をご参照ください。
バケットリストに移動し、対象のバケットをクリックします。
ファイル名または [操作] 列の詳細をクリックします。
ドメインでインターネットドメインを選択し、ファイル URL をコピーをクリックします。
ブラウザで URL にアクセスします。
OSS バケットドメイン名経由で HTML や画像などのファイルにアクセスすると、ブラウザはオンラインプレビューではなく強制ダウンロードを行います。ファイルプレビュー機能を実装するには、「カスタムドメイン名による OSS へのアクセス」をご参照ください。
ossutil
以下の例は、ossutil 2.0 コマンドラインツールを使用してファイルをダウンロードする方法を示しています。使用前に「ossutil 2.0 のインストールおよび構成」を行う必要があります。このツールはデフォルトで外部ネットワークアクセスエンドポイントを使用しますが、-e パラメーターで明示的に外部ネットワークアクセスエンドポイントを指定することもできます。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-ap-southeast-1.aliyuncs.comSDK
以下は一般的な言語の SDK 統合例を示しています。その他の言語での統合例については、SDK リファレンスの各言語の初期化方法をご参照ください。
Java SDK V2
SDK クライアントを初期化する際、デフォルトでパブリックネットワークアクセスドメイン名が使用されます。エンドポイントを追加で指定することなく、リージョン ID を指定するだけで構成が完了します。完全な初期化コード例については、「OSS SDK for Java 2.0 (プレビュー)」をご参照ください。
Java SDK V1
OSS クライアントインスタンスを初期化する際、パブリックネットワークアクセスドメイン名を指定します。完全な初期化コードについては、「OSS Java SDK V1」をご参照ください。
// シンガポールのパブリックネットワークアクセスエンドポイントを使用する例
String endpoint = "oss-ap-southeast-1.aliyuncs.com";
// OSS クライアントを初期化
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
SDK クライアントを初期化する際、デフォルトでパブリックネットワークアクセスドメイン名が使用されます。エンドポイントを追加で指定することなく、リージョン ID を指定するだけで構成が完了します。完全な初期化コード例については、「OSS Python SDK V2」をご参照ください。
Python SDK V1
OSS クライアントインスタンスを初期化する際、パブリックネットワークアクセスドメイン名を指定します。完全な初期化コードについては、「初期化」をご参照ください。
# シンガポールのパブリックエンドポイントを使用する例
endpoint = "https://oss-ap-southeast-1.aliyuncs.com"
# OSS クライアントインスタンスを初期化
bucket = oss2.Bucket(auth, endpoint, "example-bucket", region="ap-southeast-1")Go SDK V2
クライアントを初期化する際、SDK はデフォルトでパブリックエンドポイントを使用します。追加のエンドポイントを指定することなく、リージョン ID を指定するだけで構成が完了します。完全な初期化コード例については、「OSS Go SDK V2」をご参照ください。
Go SDK V1
パブリックエンドポイントを指定して OSS クライアントインスタンスを初期化します。完全な初期化コード例については、「クライアントの構成 (Go SDK V1)」をご参照ください。
// OSS クライアントインスタンスを作成
client, _ := oss.New(
"oss-ap-southeast-1.aliyuncs.com", // シンガポールのパブリックエンドポイントを使用する例
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)内部エンドポイント
Alibaba Cloud 内部ネットワーク環境専用で、同一リージョン内の ECS インスタンスから OSS にアクセスするシナリオに適しています。内部アクセスでは外部トラフィック料金を回避でき、より安定したネットワーク接続と低いアクセス遅延を実現します。
ドメインフォーマット
エンドポイント:
oss-[RegionID]-internal.aliyuncs.comバケットドメイン:
[BucketName].oss-[RegionID]-internal.aliyuncs.com
使用上の推奨事項
DNS 構成の最適化
内部エンドポイントを使用する場合、DNS 解決の問題による OSS アクセス障害を回避し、正しい VIP アドレスを取得するために、Alibaba Cloud のプライベートネットワーク DNS アドレス(
100.100.2.136および100.100.2.138)を構成することを強く推奨します。VIP ネットワークセグメントのルーティング構成の完全性
OSS は各リージョンの内部ネットワーク VIP セグメントに対して固定アドレスセグメントを割り当てます。システムは指定された VIP ネットワークセグメント内で IP アドレスを動的に切り替えます。ローカルデバイスおよびデータセンターから内部ネットワーク経由で OSS にアクセスする場合、ルーティング構成が VIP ネットワークセグメント全体をカバーしている必要があります。そうでない場合、ネットワークリーチの不完全さにより接続が中断される可能性があります。各リージョンの内部ネットワーク VIP セグメント情報については、「リージョンとエンドポイント」をご参照ください。
重要ネットワーク接続の問題を回避するため、ルーティング構成が VIP ネットワークセグメント全体をカバーしていることを確認してください。VIP ネットワークセグメントの構成が不備であったために OSS サービスの可用性が損なわれた場合、構成を行った当事者が発生した損失について責任を負うものとします。
セキュリティグループルールの構成
ECS インスタンスから内部ネットワーク経由で OSS にアクセスする場合、ネットワーク接続を確保するために、セキュリティグループルールでどの VIP ネットワークセグメントへのアクセスも禁止してはなりません。
アクセス例
ossutil
以下の例は、同一リージョン内の ECS インスタンスでコマンドラインツール ossutil 2.0 を使用してファイルをダウンロードする方法を示しています。使用前に「ossutil 2.0 のインストールおよび構成」を行う必要があります。構成時に内部ネットワークアクセスエンドポイントを使用するか、ダウンロード時に -e パラメーターで内部ネットワークアクセスエンドポイントを指定できます。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-ap-southeast-1-internal.aliyuncs.comSDK
以下は一般的な言語の SDK 統合例を示しています。その他の言語での統合例については、SDK リファレンスの各言語の初期化方法をご参照ください。
Java SDK V2
OSS クライアントインスタンスを初期化する際、エンドポイントを指定するか、useInternalEndpoint(true) を設定して内部アクセスドメインを使用します。完全な初期化コードについては、「OSS SDK for Java 2.0 (プレビュー)」をご参照ください。
方法 1:内部アクセスエンドポイントを指定
// シンガポールの内部アクセスエンドポイントを使用する例 String endpoint = "oss-ap-southeast-1-internal.aliyuncs.com"; // OSS クライアントを初期化 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .endpoint(endpoint) .build();方法 2:
useInternalEndpoint(true)で設定// OSS クライアントを初期化 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .useInternalEndpoint(true) .build();
Java SDK V1
OSS クライアントインスタンスを初期化する際、内部アクセスドメインを指定します。完全な初期化コードについては、「OSS Java SDK V1」をご参照ください。
// シンガポールの内部アクセスエンドポイントの例
String endpoint = "oss-ap-southeast-1-internal.aliyuncs.com";
// OSS クライアントを初期化
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
エンドポイントを指定するか、use_internal_endpoint = True を設定して内部アクセスドメイン名を使用し、OSS クライアントインスタンスを初期化します。完全な初期化コードについては、「OSS Python SDK V2」をご参照ください。
方法 1:内部アクセスエンドポイントを指定
# シンガポールの内部アクセスエンドポイントの例 config.endpoint = "https://oss-ap-southeast-1-internal.aliyuncs.com" # OSS クライアントを初期化 client = oss.Client(config)方法 2:
use_internal_endpoint = Trueで設定config.use_internal_endpoint = True # OSS クライアントを初期化 client = oss.Client(config)
Python SDK V1
内部アクセスドメイン名を指定して OSS クライアントインスタンスを初期化します。完全な初期化コードについては、「初期化」をご参照ください。
# シンガポールの内部アクセスエンドポイントを使用する例
endpoint = "oss-ap-southeast-1-internal.aliyuncs.com"
# OSS クライアントインスタンスを初期化
bucket = oss.Bucket(auth, endpoint, bucket, region="ap-southeast-1")Go SDK V2
エンドポイントを指定するか、WithUseInternalEndpoint(true) を使用して内部アクセスドメインを設定し、OSS クライアントインスタンスを初期化します。完全な初期化コードについては、「OSS Go SDK V2」をご参照ください。
方法 1:内部アクセスエンドポイントを指定
// OSS クライアントを構成し、認証情報プロバイダーとサービスリージョンを設定 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithEndpoint("oss-ap-southeast-1-internal.aliyuncs.com") // シンガポールの内部アクセスエンドポイントを使用する例 // OSS クライアントインスタンスを初期化 client := oss.NewClient(config)方法 2:
WithUseInternalEndpoint(true)で設定// OSS クライアントを構成し、認証情報プロバイダーとサービスリージョンを設定 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithUseInternalEndpoint(true) // OSS クライアントインスタンスを初期化 client := oss.NewClient(config)
Go SDK V1
OSS クライアントインスタンスを初期化する際、内部ネットワークアクセスドメイン名を指定します。完全な初期化コードについては、「クライアントの構成 (Go SDK V1)」をご参照ください。
// OSS クライアントインスタンスを作成
client, _ := oss.New(
"oss-ap-southeast-1-internal.aliyuncs.com", // シンガポールの内部ネットワークアクセスエンドポイントを使用する例
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)転送アクセラレーションドメイン名
転送アクセラレーションを使用した OSS へのアクセス機能を有効化すると、グローバルアクセラレーションノードを通じてデータ伝送パスを最適化する専用ドメイン名を使用できます。これはクロスリージョンおよび国際間の高速アップロード/ダウンロードシナリオに適しており、長距離アクセス時のネットワーク品質を大幅に向上させます。
ドメイン名フォーマット
エンドポイント:
oss-accelerate.aliyuncs.comバケットドメイン名:
[BucketName].oss-accelerate.aliyuncs.com
アクセス例
ossutil
以下の例は、シンガポールリージョンの ECS インスタンス上で ossutil 2.0 コマンドラインツールを使用して、クロスリージョンのバケットからファイルをダウンロードする方法を示しています。使用前に「ossutil 2.0 のインストールおよび構成」を行う必要があります。構成時に転送アクセラレーションエンドポイントを使用するか、ダウンロード時に -e パラメーターで転送アクセラレーションエンドポイントを指定できます。
ossutil cp oss://example-bucket/dest.jpg dest.jpg -e oss-accelerate.aliyuncs.comSDK
以下は一般的な言語の SDK 統合例を示しています。その他の言語での統合例については、SDK リファレンスの各言語の初期化方法をご参照ください。
Java SDK V2
OSS クライアントインスタンスを初期化する際、エンドポイントを指定するか、useAccelerateEndpoint(true) を設定して転送アクセラレーションドメイン名を使用します。完全な初期化コードについては、「OSS SDK for Java 2.0 (プレビュー)」をご参照ください。
方法 1:転送アクセラレーションエンドポイントを指定
String endpoint = "oss-accelerate.aliyuncs.com"; // OSS クライアントを初期化 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .endpoint(endpoint) .build();方法 2:
useAccelerateEndpoint(true)で設定// OSS クライアントを初期化 OSSClient client = OSSClient.newBuilder() .credentialsProvider(provider) .region("ap-southeast-1") .useAccelerateEndpoint(true) .build();
Java SDK V1
OSS クライアントインスタンスを初期化する際、転送アクセラレーションドメイン名を指定します。完全な初期化コードについては、「OSS Java SDK V1」をご参照ください。
String endpoint = "oss-accelerate.aliyuncs.com";
// OSS クライアントを初期化
OSS ossClient = OSSClientBuilder.create()
.credentialsProvider(provider)
.clientConfiguration(clientBuilderConfiguration)
.region("ap-southeast-1")
.endpoint(endpoint)
.build();Python SDK V2
OSS クライアントインスタンスを初期化する際、エンドポイントを指定するか、use_accelerate_endpoint = True を設定して転送アクセラレーションドメイン名を使用します。完全な初期化コードについては、「OSS Python SDK V2」をご参照ください。
方法 1:転送アクセラレーションエンドポイントを指定
config.endpoint = "oss-accelerate.aliyuncs.com" # OSS クライアントを初期化 client = oss.Client(config)方法 2:
use_accelerate_endpoint = Trueで設定config.use_accelerate_endpoint = True # OSS クライアントを初期化 client = oss.Client(config)
Python SDK V1
OSS クライアントインスタンスを初期化する際、転送アクセラレーションドメインを指定します。完全な初期化コードについては、「初期化」をご参照ください。
endpoint = "oss-accelerate.aliyuncs.com"
# OSS クライアントインスタンスを初期化
bucket = oss.Bucket(auth, endpoint, bucket, region="ap-southeast-1")Go SDK V2
エンドポイントを指定するか、WithUseAccelerateEndpoint(true) を設定して転送アクセラレーションドメインを使用するように OSS クライアントインスタンスを初期化します。完全な初期化コードについては、「OSS Go SDK V2」をご参照ください。
方法 1:転送アクセラレーションエンドポイントを指定
// OSS クライアントを構成し、認証情報プロバイダーとサービスリージョンを設定 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithEndpoint("oss-accelerate.aliyuncs.com") // OSS クライアントインスタンスを初期化 client := oss.NewClient(config)方法 2:
WithUseAccelerateEndpoint(true)で設定// OSS クライアントを構成し、認証情報プロバイダーとサービスリージョンを設定 config := oss.LoadDefaultConfig(). WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()). WithRegion("ap-southeast-1"). WithUseAccelerateEndpoint(true) // OSS クライアントインスタンスを初期化 client := oss.NewClient(config)
Go SDK V1
OSS クライアントインスタンスを初期化する際、転送アクセラレーションドメイン名を指定します。完全な初期化コードについては、「クライアントの構成 (Go SDK V1)」をご参照ください。
// OSS クライアントインスタンスを作成
client, _ := oss.New(
"oss-accelerate.aliyuncs.com",
"",
"",
oss.SetCredentialsProvider(&provider),
oss.AuthVersion(oss.AuthV4),
oss.Region("ap-southeast-1"),
)CNAME ドメイン名
バケット用に OSS によって生成された専用の解決ドメインで、カスタムドメインのバインドに特化しており、直接アクセスできません。カスタムドメイン名を使用して OSS にアクセスする必要がある場合は、「カスタムドメイン名を使用して OSS にアクセスする」をご参照ください。専用ドメイン名に対して CNAME 解決を設定することで、カスタムドメイン名をバインドします。これは、Web サイトのイメージやスクリプトなどの静的リソースをホストするのに適しています。
使用上の注意点
DNS 解決のみ:CNAME 専用ドメイン名はカスタムドメイン名の DNS 解決構成にのみ使用され、直接アクセスはサポートされていません。
カスタムドメイン名経由でのアクセス:ドメイン名のバインドが完了すると、カスタムドメイン名経由で OSS リソースにアクセスできます。
リージョンサポート:現在、中国 (杭州)、中国 (上海)、中国 (青島)、およびシンガポールリージョンをサポートしています。
ドメインフォーマット
OSS は各バケットに対してリージョン内に CNAME ドメインを割り当てます。異なるバケットには異なるドメインが割り当てられる場合があります。
バケットドメイン:
[BucketName].[RegionId].[CnameDomain](例:example-***.cn-hangzhou.taihang***.cn)
プロトコルサポート
HTTP/HTTPS プロトコル
すべてのリージョンのエンドポイントおよびバケットドメインは、HTTP および HTTPS プロトコルの両方によるアクセスをサポートしています。データ伝送のセキュリティを確保するため、本番環境では HTTPS プロトコルの使用を強く推奨します。
IP プロトコル
すべてのリージョンで IPv4 アクセスをサポートしています。一部のリージョンでは、エンドポイントに対して IPv4 と IPv6 のデュアルスタックアクセスも追加でサポートしており、IPv6 ネットワーク環境のクライアントが直接 OSS リソースに接続できます。IPv6 をサポートするエンドポイントの場合、クライアント側で特別な構成は不要です。純粋な IPv6 またはデュアルスタックネットワーク環境では、DNS が自動的に解決を行い、IPv6 アドレスを使用して接続を優先的に確立します。クラシックネットワーク環境の ECS インスタンスは、OSS リソースへの IPv4 または IPv6 プロトコルアクセスをサポートしていません。