您可以開啟儲存空間的訪問日誌記錄功能。開啟後對於此儲存空間的訪問會被記錄成記錄檔,保存在指定的儲存空間中。記錄檔的格式為:
<TargetPrefix><SourceBucket>-YYYY-mm-DD-HH-MM-SS-UniqueString
更多關於訪問日誌的介紹,請參見開發指南中的設定訪問日誌記錄。訪問日誌的完整代碼請參見GitHub。
開啟訪問日誌記錄
以下代碼用於開啟儲存空間的訪問日誌記錄:
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// 建立OSSClient執行個體。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
targetBucketName := "<yourTargetBucketName>"
targetPrefix := "<yourTargetPrefix>"
// 開啟儲存空間的訪問日誌記錄。targetBucketName為存放記錄檔的儲存空間,targetPrefix為被保存的訪問記錄檔首碼,即記錄檔存放的目錄。
err = client.SetBucketLogging(bucketName, targetBucketName, targetPrefix, true)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}
查看訪問日誌設定
以下代碼用於查看儲存空間的訪問日誌設定:
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// 建立OSSClient執行個體。
client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
// 查看儲存空間的訪問日誌設定。
logRes, err := client.GetBucketLogging(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
fmt.Println("Target Bucket: ", logRes.LoggingEnabled.TargetBucket)
fmt.Println("Target Prefix: ", logRes.LoggingEnabled.TargetPrefix)
}
關閉訪問日誌記錄
以下代碼用於關閉儲存空間的訪問日誌記錄:
package main
import (
"fmt"
"os"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// 建立OSSClient執行個體。
// client, err := oss.New("<yourEndpoint>", "<yourAccessKeyId>", "<yourAccessKeySecret>")
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
bucketName := "<yourBucketName>"
// 關閉訪問日誌記錄。
err = client.DeleteBucketLogging(bucketName)
if err != nil {
fmt.Println("Error:", err)
os.Exit(-1)
}
}