オブジェクトをバケットにアップロードすると、オブジェクトストレージサービス (OSS) は、アップロードされたオブジェクトのバケットのパブリックエンドポイントを含むURLを自動的に生成します。 これらのURLを使用してオブジェクトにアクセスできます。 カスタムドメイン名を使用してオブジェクトにアクセスする場合は、CNAMEレコードを追加して、カスタムドメイン名をオブジェクトが格納されているバケットにマップする必要があります。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョン、エンドポイント、オープンポート」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
CNAMEトークンの作成
次のサンプルコードは、CNAMEトークンを作成する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the custom domain name.
test_domain = 'www.example.com'
# Create a CNAME token.
result = bucket.create_bucket_cname_token(test_domain)
# Show the name of the CNAME record that is mapped to the bucket.
print(result.cname)
# Show the CNAME token that is returned by OSS.
print(result.token)
# Show the point in time when the CNAME token expires.
print(result.expire_time)
CNAMEトークンの照会
次のサンプルコードは、CNAMEトークンを照会する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the custom domain name.
test_domain = 'www.example.com'
# Obtain the created CNAME token.
result = bucket.get_bucket_cname_token(test_domain)
# Show the name of the CNAME record that is mapped to the bucket.
print(result.cname)
# Show the CNAME token that is returned by OSS.
print(result.token)
# Show the point in time when the CNAME token expires.
print(result.expire_time)
CNAME レコードの追加
次のサンプルコードは、バケットにCNAMEレコードを追加する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the custom domain name.
test_domain = 'www.example.com'
# Specify the ID of the certificate.
previous_cert_id = '001'
certificate = '''-----BEGIN CERTIFICATE-----
MIIDWzCCAkOgA******KTgnwyOGU9cv+mxA=
-----END CERTIFICATE-----'''
# Specify the private key of the certificate.
private_key = '''-----BEGIN PRIVATE KEY-----
MIIEvQIBADAN******1i2t41Q/SC3HUGC5mJjpO8=
-----END PRIVATE KEY-----
'''
cert = oss2.models.CertInfo(certificate=certificate, private_key=private_key)
# Set force to True to forcibly overwrite the certificate.
# Specify whether to delete the certificate. If you want to delete the certificate, set delete_certificate to True. If you want to retain the certificate, set delete_certificate to False.
# cert = oss2.models.CertInfo(certificate=certificate, private_key=private_key, force=True, delete_certificate=False)
input = oss2.models.PutBucketCnameRequest(test_domain, cert)
bucket.put_bucket_cname(input)
CNAMEレコードの照会
次のサンプルコードは、バケットのCNAMEレコードを照会する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
list_result = bucket.list_bucket_cname()
for c in list_result.cname:
# Show the ID of the certificate.
print(c.certificate.cert_id)
# Show the source of the certificate.
print(c.certificate.type)
# Show the status of the certificate.
print(c.certificate.status)
# Show the custom domain name.
print(c.domain)
# Show the point in time when the custom domain name is mapped to the bucket.
print(c.last_modified)
# Show the status of the custom domain name.
print(c.status)
CNAME レコードの削除
次のサンプルコードは、バケットを指すCNAMEレコードを削除する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of the bucket.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Specify the custom domain name.
test_domain = 'www.example.com'
# Delete the CNAME record.
bucket.delete_bucket_cname(test_domain)
関連ドキュメント
ドメイン名の所有権を検証するためにCNAMEトークンを作成するために呼び出すことができるAPI操作の詳細については、「CreateCnameToken」をご参照ください。
CNAMEトークンを照会するために呼び出すことができるAPI操作の詳細については、「GetCnameToken」をご参照ください。
CNAMEレコードを追加するために呼び出すことができるAPI操作の詳細については、「PutCname」をご参照ください。
CNAMEレコードを照会するために呼び出すことができるAPI操作の詳細については、「ListCname」をご参照ください。
CNAMEレコードを削除するために呼び出すことができるAPI操作の詳細については、「DeleteCname」をご参照ください。