OSSバケットとしてECSインスタンスが同じリージョンであれば、すべてのトラフィックのコストをかけず、イントラネット上のOSSにアクセスすることができます。イントラネット経由でアクセスが行われるかどうかは、設定したドメイン名によって異なります。設定したドメイン名がイントラネットのドメイン名である場合、アクセスはイントラネット上で行われます。設定したドメイン名がイントラネットのドメイン名でない場合、インターネット経由でアクセスが行われます。
注意:
- 同じリージョン内のECSは、イントラネット上のOSSにアクセスできます。
- 異なるアカウントのECSとOSSは、イントラネット上で互いに通信できます。
- 異なるリージョンのECSは、イントラネット上のOSSにアクセスすることはできません。
イントラネットアドレス形式
- VPC/クラシックネットワークECS: BucketName.region-internal.aliyuncs.com
例:
- 中国東部2クラシックネットワークECS: aliyun-abc.oss-cn-shanghai-internal.aliyuncs.com
使用可能なリージョンについては、OSS アクセスドメイン名を参照してください。
コンソールのバケットイントラネットアドレスを取得する
[OSS コンソール]にログオンし, バケットを選択し、バケットページ概要を開きます。アクセスドメイン名エリアにバケットアドレスが表示されます。
ウェブサイトがイントラネット上でOSSリソースを使用する方法
WebサイトがECSにデプロイされている場合は、オブジェクトのイントラネットURLhttp://ali.oss-cn-hangzhou-internal.aliyuncs.com/1.jpg
を直接埋め込みます。ローカルPC上のWebページまたはインターネット環境でOSSイントラネットアドレスに直接アクセスする顧客は、そのオブジェクトを取得できません。
同じリージョン内のECS上のWebサイトがイントラネット上のOSSリソースを呼び出す場合は、WebページのアクセスリンクをECSリソースとして設定する必要があります。ECSは、顧客がアクセスするためのイントラネット上のOSSリソースを取得します。入手方法: API/SDK またはリバースプロキシ、ECSの帯域幅は、ウェブサイトが頻繁に訪問されるときにボトルネックになる可能性があります。
SDK/APIがイントラネット上でOSSを使用する方法
クライアントを初期化するようにSDKを構成するときは、OSSイントラネットエンドポイントをクライアントエンドポイントとして設定します。OSS アクセスドメイン名を参照してください。
Java
String endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";//for example, East China 1
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
詳細はJava SDKを参照してください。
PHP
$accessKeyId = "<the AccessKeyID you obtained from OSS>";
$accessKeySecret = "<the AccessKeySecret you obtained from OSS>";
$endpoint = "<The endpoint of the OSS data center you selected, for example, http://oss-cn-hangzhou-internal.aliyuncs.com>";
詳細はPHP SDKを参照してください。
Python
auth = oss2.Auth ('your AccessKeyID', 'your AccessKeySecret')
endpoint = 'http://oss-cn-hangzhou-internal.aliyuncs.com' # Suppose that your bucket is in the Hangzhou region
bucket = oss2.Bucket(auth, endpoint, 'your bucket name')
詳細はPython SDKを参照してください。
.Net
const string accessKeyId = "<your AccessKeyId>";
const string accessKeySecret = "<your AccessKeySecret>";
const string endpoint = "http://oss-cn-hangzhou-internal.aliyuncs.com";
var ossClient = new OssClient(endpoint, accessKeyId, accessKeySecret);
詳細は.NET SDKを参照してください。
C
ptions->config = oss_config_create(options->pool);
aos_str_set(&options->config->endpoint, "http://oss-cn-hangzhou-internal.aliyuncs.com");
aos_str_set(&options->config->access_key_id, "<your AccessKeyId>");
aos_str_set(&options->config->access_key_secret, "<your AccessKeySecret>");
options->config->is_cname = 0;
options->ctl = aos_http_controller_create(options->pool, 0);
詳細はC SDKを参照してください。