PutBucketLogging介面用於為儲存空間(Bucket)開啟日誌轉存功能,可將OSS的訪問日誌按照固定命名規則,以小時為單位組建記錄檔檔案寫入您指定的Bucket。
注意事項
組建記錄檔的源Bucket和儲存日誌的目標Bucket可以相同也可以不同,但是必須屬於同一帳號下的相同地區。
記錄檔以小時為單位產生,但並不表示某個時段的記錄檔記錄了該時段的所有請求,部分請求可能會出現在上一時段或下一時段的記錄檔中。
記錄檔命名規則及日誌格式說明,請參見日誌轉存。
在您關閉日誌轉存功能前,OSS的記錄檔會一直產生。請及時清理不再需要的記錄檔,以減少您的儲存費用。
您可以通過生命週期規則定期刪除記錄檔。更多資訊,請參見基於最後一次修改時間的生命週期規則。
OSS會根據需求在日誌的尾部添加一些欄位,請您在開發Tlog工具時考慮相容性的問題。
請求文法
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>
要求標頭
此介面僅涉及公用要求標頭。更多資訊,請參見公用要求標頭(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 qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrTZ**** <?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 qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrTZ**** <?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的擁有者。 |