12
This commit is contained in:
7
internal/cloudflare/handler.go
Normal file
7
internal/cloudflare/handler.go
Normal 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
73
internal/cloudflare/r2.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user