PutBucketLogging 操作を呼び出して、バケットのロギング機能を有効にします。この機能は、Object Storage Service (OSS) のアクセスログを 1 時間ごとに生成します。ログファイルは固定の命名規則に従い、指定されたバケットに書き込まれます。
使用上の注意
PutBucketLogging 操作を呼び出してバケットのロギング機能を有効にするには、
oss:PutBucketLogging権限が必要です。詳細については、「RAM ユーザーへのカスタムアクセスポリシーの付与」をご参照ください。ソースバケットと宛先バケットは、同じでも異なっていてもかまいません。それらは同じリージョンにあり、同じ Alibaba Cloud アカウントに属している必要があります。
ログファイルは 1 時間ごとに生成されます。ただし、特定の時間のログファイルには、その時間のすべてのリクエストが含まれていない場合があります。一部のリクエストは、前の時間または次の時間のログファイルに表示される場合があります。
ログファイルの命名規則とフォーマットの詳細については、「ロギング」をご参照ください。
OSS は、ロギング機能を無効にするまで、ログファイルを継続的に生成します。ストレージコストを削減するために、不要になったログファイルを削除してください。
ライフサイクルルールを使用して、ログファイルを定期的に削除できます。詳細については、「最終更新時間に基づくライフサイクルルール」をご参照ください。
OSS は、必要に応じてログファイルの末尾にフィールドを追加することがあります。ログ処理ツールを開発する際は、互換性を考慮してください。
権限
デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトでは何の権限も持っていません。Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
PutBucketLogging |
| バケットのロギングを有効にします。 |
| バケットのロギングを有効にする際、ログが別のバケットに書き込まれる場合、この権限が宛先バケットに必要です。 |
リクエスト構文
PUT /?logging HTTP/1.1
Date: GMT Date
Content-Length: ContentLength
Content-Type: application/xml
Authorization: SignatureValue
Host: Host
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
<LoggingEnabled>
<TargetBucket>TargetBucket</TargetBucket>
<TargetPrefix>TargetPrefix</TargetPrefix>
</LoggingEnabled>
</BucketLoggingStatus>リクエストヘッダー
DescribeRegions リクエストのすべてのヘッダーは、共通のリクエストヘッダーです。詳細については、「共通リクエストヘッダー」をご参照ください。
リクエスト要素
名前 | タイプ | 必須 | 例 | 説明 |
BucketLoggingStatus | コンテナー | はい | N/A | アクセスログのステータス情報のコンテナー。 子要素: LoggingEnabled 親要素: なし |
LoggingEnabled | コンテナー | ロギングを有効にする場合は「はい」。 | N/A | アクセスログ情報のコンテナー。 子要素: TargetBucket、TargetPrefix、および LoggingRole 親要素: BucketLoggingStatus |
TargetBucket | 文字列 | ロギングを有効にする場合は「はい」。 | examplebucket | アクセスログが保存されるバケット。 子要素: なし 親要素: BucketLoggingStatus.LoggingEnabled |
TargetPrefix | 文字列 | いいえ | MyLog- | ログファイル名のプレフィックス。空にすることもできます。 子要素: なし 親要素: BucketLoggingStatus.LoggingEnabled |
LoggingRole | 文字列 | いいえ | AliyunOSSLoggingDefaultRole | ロギングが承認されているロール。 子要素: なし 親要素: BucketLoggingStatus.LoggingEnabled |
レスポンスヘッダー
DescribeRegions リクエストへのレスポンスのすべてのヘッダーは、共通のレスポンスヘッダーです。詳細については、「共通レスポンスヘッダー」をご参照ください。
例
バケットの例
バケットのロギングを有効にするリクエストの例
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 186 Date: Thu, 17 Apr 2025 03:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <LoggingEnabled> <TargetBucket>examplebucket</TargetBucket> <TargetPrefix>MyLog-</TargetPrefix> <LoggingRole>AliyunOSSLoggingDefaultRole</LoggingRole> </LoggingEnabled> </BucketLoggingStatus>レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 534B371674E888648906008B Date: Fri, 04 May 2012 03:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSSバケットのロギングを無効にするリクエストの例
バケットのロギング機能を無効にするには、空の BucketLoggingStatus を送信します。以下に例を示します。
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Type: application/xml Content-Length: 86 Date: Thu, 17 Apr 2025 04:21:12 GMT Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> </BucketLoggingStatus>レスポンスの例
HTTP/1.1 200 OK x-oss-request-id: 534B371674125A4D8906008B Date: Fri, 04 May 2012 04:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
ベクターバケットの例
ベクターバケットの Host の region パラメーターは、汎用バケットで使用される従来の OSS リージョン ID (oss-cn-hangzhou など) ではなく、標準の Alibaba Cloud リージョン ID (cn-hangzhou など) を使用します。
バケットのロギングを有効にするリクエストの例
PUT /?logging HTTP/1.1
Host: exampebucket-123***456.cn-hangzhou.oss-vectors.aliyuncs.com
Content-Length: 186
Content-Type: application/json
Date: Thu, 17 Apr 2025 03:21:12 GMT
Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,AdditionalHeaders=content-length,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e
{
"BucketLoggingStatus": {
"LoggingEnabled": {
"TargetBucket": "examplebucket",
"TargetPrefix": "MyLog-",
"LoggingRole": "AliyunOSSLoggingDefaultRole"
}
}
}レスポンスの例
HTTP/1.1 200 OK
x-oss-request-id: 534B371674E888648906008B
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSSSDK
この操作には、次の SDK を使用できます。
ossutil コマンドラインインターフェイス
PutBucketLogging 操作に対応する ossutil コマンドの詳細については、「put-bucket-logging」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
NoSuchBucket | 404 | ソースバケットが存在しません。 |
InvalidTargetBucketForLogging | 400 | ソースバケットと宛先バケットが同じデータセンターにありません。 |
InvalidDigest | 400 | Content-MD5 リクエストヘッダーを含めると、OSS はメッセージ本文の Content-MD5 値を計算し、一貫性をチェックします。値が一致しない場合、このエラーコードが返されます。 |
MalformedXML | 400 | リクエストの XML の形式が正しくありません。 |
InvalidTargetBucketForLogging | 403 | リクエスターは宛先バケットのオーナーではありません。 |
AccessDenied | 403 | リクエスターはソースバケットのオーナーではありません。 |