tencent_ocr/.history/pkg/handler/r2_usage_20250116111455.go
2025-01-16 11:18:42 +08:00

45 lines
977 B
Go

package handler
import (
"encoding/json"
"net/http"
"os"
"github.com/cloudflare/cloudflare-go"
)
type R2UsageResponse struct {
StorageUsed uint64 `json:"storage_used"`
Requests uint64 `json:"requests"`
LastUpdated string `json:"last_updated"`
}
func GetR2Usage(w http.ResponseWriter, r *http.Request) {
// 初始化Cloudflare客户端
api, err := cloudflare.NewWithAPIToken(os.Getenv("CLOUDFLARE_API_TOKEN"))
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// 获取账户ID
accountID := os.Getenv("CLOUDFLARE_ACCOUNT_ID")
// 查询R2使用量
usage, err := api.R2Usage(accountID)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// 返回响应
response := R2UsageResponse{
StorageUsed: usage.StorageUsed,
Requests: usage.Requests,
LastUpdated: usage.LastUpdated,
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(response)
}