全部產品
Search
文件中心

:PutBucketLogging

更新時間:Feb 28, 2024

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的擁有者。