オブジェクトをバケットにアップロードすると、オブジェクトストレージサービス (OSS) は、アップロードされたオブジェクトのバケットのパブリックエンドポイントを含むURLを自動的に生成します。 これらのURLを使用してオブジェクトにアクセスできます。 カスタムドメイン名を使用してオブジェクトにアクセスする場合は、CNAMEレコードを追加して、カスタムドメイン名をオブジェクトが格納されているバケットにマップする必要があります。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス資格情報は環境変数から取得します。 アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSTS (Security Token Service) を使用してOSSClientインスタンスを作成する場合は、「初期化」をご参照ください。
CNAMEトークンの作成
次のサンプルコードは、CNAMEトークンを作成する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# カスタムドメイン名を指定します。
test_domain = 'www .example.com'
# CNAMEトークンを作成します。
result = bucket.create_bucket_cname_token(test_domain)
# バケットにマップされているCNAMEレコードの名前を表示します。
プリント (result.cn ame)
# OSSによって返されるCNAMEトークンを表示します。
print(result.token)
# CNAMEトークンの有効期限が切れる時点を表示します。
プリント (result.expire_time)
CNAMEトークンの照会
次のサンプルコードは、CNAMEトークンを照会する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# カスタムドメイン名を指定します。
test_domain = 'www .example.com'
# 作成されたCNAMEトークンを取得します。
result = bucket.get_bucket_cname_token(test_domain)
# バケットにマップされているCNAMEレコードの名前を表示します。
プリント (result.cn ame)
# OSSによって返されるCNAMEトークンを表示します。
print(result.token)
# CNAMEトークンの有効期限が切れる時点を表示します。
プリント (result.expire_time)
CNAME レコードの追加
次のサンプルコードは、バケットにCNAMEレコードを追加する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# カスタムドメイン名を指定します。
test_domain = 'www .example.com'
# 証明書のIDを指定します。
previous_cert_id = '001'
certificate = ''----- 認証を開始 -----
MIIDWzCCAkOgA ****** KTgnwyOGU9cv + mxA=
----- 証明書を終了 -----''
# 証明書の秘密鍵を指定します。
private_key = ''----- プライベートキーを開始 -----
MIIEvQIBADAN ****** 1i2t4 1Q/SC3HUGC5mJjpO8=
----- プライベートキーを終了 -----
''
cert = oss2.models.CertInfo(certificate=certificate, private_key=private_key)
# 強制をTrueに設定して、証明書を強制的に上書きします。
# 証明書を削除するかどうかを指定します。 証明書を削除する場合は、delete_certificateをTrueに設定します。 証明書を保持する場合は、delete_certificateを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 (入力)
CNAMEレコードの照会
次のサンプルコードは、バケットのCNAMEレコードを照会する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
list_result = bucket.list_bucket_cname()
list_result.cnameのcの場合:
# 証明書のIDを表示します。
print(c.certificate.cert_id)
# 証明書のソースを表示します。
プリント (c.certificate.type)
# 証明書のステータスを表示します。
プリント (c.certificate.status)
# カスタムドメイン名を表示します。
print(c.domain)
# カスタムドメイン名がバケットにマップされた時点を表示します。
プリント (c.last_modified)
# カスタムドメイン名のステータスを表示します。
プリント (c.status)
CNAME レコードの削除
次のサンプルコードは、バケットを指すCNAMEレコードを削除する方法の例を示しています。
# -*-コーディング: utf-8 -*-
oss2のインポート
oss2.credentialsからEnvironmentVariableCredentialsProviderをインポート
# 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。
# バケットの名前を指定します。 例: examplebucket.
bucket = oss2.Bucket(auth, 'https:// oss-cn-hangzhou.aliyuncs.com ', 'examplebucket')
# カスタムドメイン名を指定します。
test_domain = 'www .example.com'
# CNAMEレコードを削除します。
bucket.de lete_bucket_cname(test_domain)
参考資料
ドメイン名の所有権を検証するためにCNAMEトークンを作成するために呼び出すことができるAPI操作の詳細については、「CreateCnameToken」をご参照ください。
CNAMEトークンを照会するために呼び出すことができるAPI操作の詳細については、「GetCnameToken」をご参照ください。
CNAMEレコードを追加するために呼び出すことができるAPI操作の詳細については、「PutCname」をご参照ください。
CNAMEレコードを照会するために呼び出すことができるAPI操作の詳細については、「ListCname」をご参照ください。
CNAMEレコードを削除するために呼び出すことができるAPI操作の詳細については、「DeleteCname」をご参照ください。