This commit is contained in:
2025-07-19 02:03:24 +08:00
commit ac6eeff8c9
44 changed files with 10305 additions and 0 deletions

View File

@ -0,0 +1,7 @@
package cloudflare
import "github.com/gin-gonic/gin"
func AccountCreate(c *gin.Context) {
}

73
internal/cloudflare/r2.go Normal file
View File

@ -0,0 +1,73 @@
package cloudflare
import (
"context"
"fmt"
"github.com/cloudflare/cloudflare-go/v4"
"github.com/cloudflare/cloudflare-go/v4/accounts"
"github.com/cloudflare/cloudflare-go/v4/option"
"github.com/cloudflare/cloudflare-go/v4/r2"
"log"
)
type CloudflareClient struct {
Client *cloudflare.Client
Ctx context.Context
AccountsID string
}
func NewCloudflare(apiKey string, ctx context.Context) *CloudflareClient {
client := cloudflare.NewClient(option.WithAPIToken(apiKey))
resp, err := client.Accounts.List(ctx, accounts.AccountListParams{})
if err != nil {
log.Fatal(err)
}
return &CloudflareClient{
Client: client,
Ctx: ctx,
AccountsID: resp.Result[0].ID,
}
}
func (r *CloudflareClient) Create(bucketName string) {
bucket, err := r.Client.R2.Buckets.New(r.Ctx, r2.BucketNewParams{
AccountID: cloudflare.F(r.AccountsID),
Name: cloudflare.F(bucketName),
LocationHint: cloudflare.F(r2.BucketNewParamsLocationHintApac),
StorageClass: cloudflare.F(r2.BucketNewParamsStorageClassStandard),
Jurisdiction: cloudflare.F(r2.BucketNewParamsCfR2JurisdictionDefault),
})
if err != nil {
panic(err)
}
print(bucket.Name)
}
// GetBuckets 获取指定存储桶
func (r *CloudflareClient) GetBuckets(bucketsName string) {
bucket, err := r.Client.R2.Buckets.Get(r.Ctx, bucketsName, r2.BucketGetParams{
AccountID: cloudflare.F(r.AccountsID),
})
if err != nil {
log.Fatalf("获取存储桶失败: %v", err)
}
metrics, err := r.Client.R2.Buckets.Metrics.List(r.Ctx, r2.BucketMetricListParams{
AccountID: cloudflare.F(r.AccountsID),
})
fmt.Printf("📦 存储桶名称: %s\n", bucket.Name)
fmt.Printf("📦 存储桶名称: %s\n", bucket.Location)
fmt.Printf("🔧 默认存储类型: %s\n", bucket.StorageClass)
fmt.Println("总存储量:", metrics.Standard.Uploaded.PayloadSize+metrics.Standard.Uploaded.MetadataSize)
}
func (r *CloudflareClient) GetBucketsList() {
resp, err := r.Client.R2.Buckets.List(r.Ctx, r2.BucketListParams{
AccountID: cloudflare.F(r.AccountsID),
})
if err != nil {
log.Fatal(err)
}
for _, bucket := range resp.Buckets {
fmt.Printf("📦 存储桶: %s | 区域: %s | 存储类: %s\n",
bucket.Name, bucket.Location, bucket.StorageClass)
}
}