PutBucketLogging接口用于為存儲空間(Bucket)開啟日志轉存功能,可將OSS的訪問日志按照固定命名規則,以小時為單位生成日志文件寫入您指定的Bucket。
注意事項
生成日志的源Bucket和存儲日志的目標Bucket可以相同也可以不同,但是必須屬于同一賬號下的相同地域。
日志文件以小時為單位生成,但并不表示某個時段的日志文件記錄了該時段的所有請求,部分請求可能會出現在上一時段或下一時段的日志文件中。
日志文件命名規則及日志格式說明,請參見日志轉存。
在您關閉日志轉存功能前,OSS的日志文件會一直生成。請及時清理不再需要的日志文件,以減少您的存儲費用。
您可以通過生命周期規則定期刪除日志文件。更多信息,請參見基于最后一次修改時間的生命周期規則。
OSS會根據需求在日志的尾部添加一些字段,請您在開發日志處理工具時考慮兼容性的問題。
請求語法
PUT /?logging HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Authorization: SignatureValue
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
<?xml version="1.0" encoding="UTF-8"?>
<BucketLoggingStatus>
<LoggingEnabled>
<TargetBucket>TargetBucket</TargetBucket>
<TargetPrefix>TargetPrefix</TargetPrefix>
</LoggingEnabled>
</BucketLoggingStatus>
當您在OSS ON云盒中調用該接口時,您需要將Host替換為云盒Endpoint。更多信息,請參見云盒Endpoint。
請求頭
此接口僅涉及公共請求頭。更多信息,請參見公共請求頭(Common Request Headers)。
請求元素
名稱 | 類型 | 是否必需 | 示例值 | 描述 |
BucketLoggingStatus | 容器 | 是 | 不涉及 | 存儲訪問日志狀態信息的容器。 子元素:LoggingEnabled 父元素:無 |
LoggingEnabled | 容器 | 開啟日志轉存時必選 | 不涉及 | 訪問日志信息的容器。 子元素:TargetBucket, TargetPrefix 父元素:BucketLoggingStatus |
TargetBucket | 字符串 | 開啟日志轉存時必選 | examplebucket | 指定存儲訪問日志的Bucket。 子元素:無 父元素:BucketLoggingStatus.LoggingEnabled |
TargetPrefix | 字符串 | 否 | MyLog- | 指定保存的日志文件前綴,可以為空。 子元素:無 父元素:BucketLoggingStatus.LoggingEnabled |
響應頭
此接口僅涉及公共響應頭。更多信息,請參見公共響應頭(Common Response Headers)。
示例
開啟Bucket日志轉存的請求示例
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Length: 186 Date: Fri, 04 May 2012 03:21:12 GMT Authorization: OSS qn6q**************:77Dv**************** <?xml version="1.0" encoding="UTF-8"?> <BucketLoggingStatus> <LoggingEnabled> <TargetBucket>examplebucket</TargetBucket> <TargetPrefix>MyLog-</TargetPrefix> </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
關閉Bucket日志轉存的請求示例
關閉Bucket的日志轉存功能時,只需發送一個空的BucketLoggingStatus即可。示例如下:
PUT /?logging HTTP/1.1 Host: oss-example.oss-cn-hangzhou.aliyuncs.com Content-Type: application/xml Content-Length: 86 Date: Fri, 04 May 2012 04:21:12 GMT Authorization: OSS qn6q**************:77Dv**************** <?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
SDK
此接口所對應的各語言SDK如下:
錯誤碼
錯誤碼 | HTTP 狀態碼 | 描述 |
NoSuchBucket | 404 | 源Bucket不存在。 |
InvalidTargetBucketForLogging | 400 | 源Bucket和目標Bucket不屬于同一個數據中心。 |
InvalidDigest | 400 | 上傳了Content-MD5請求頭后,OSS會計算消息體的Content-MD5并檢查一致性,如果不一致會返回此錯誤碼。 |
MalformedXML | 400 | 請求中的XML不合法。 |
InvalidTargetBucketForLogging | 403 | 請求發起者不是目標Bucket的擁有者。 |
AccessDenied | 403 | 請求發起者不是源Bucket的擁有者。 |