github.com/qiniu/go-sdk/v7@v7.27.0/examples/rs_batch_stat/main.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/qiniu/go-sdk/v7/auth"
     8  	"github.com/qiniu/go-sdk/v7/storage"
     9  )
    10  
    11  var (
    12  	accessKey = os.Getenv("QINIU_ACCESS_KEY")
    13  	secretKey = os.Getenv("QINIU_SECRET_KEY")
    14  	bucket    = os.Getenv("QINIU_TEST_BUCKET")
    15  )
    16  
    17  func main() {
    18  	mac := auth.New(accessKey, secretKey)
    19  
    20  	cfg := storage.Config{
    21  		// 是否使用https域名进行资源管理
    22  		UseHTTPS: false,
    23  	}
    24  	// 指定空间所在的区域,如果不指定将自动探测
    25  	// 如果没有特殊需求,默认不需要指定
    26  	// cfg.Zone=&storage.ZoneHuabei
    27  	bucketManager := storage.NewBucketManager(mac, &cfg)
    28  
    29  	// 每个batch的操作数量不可以超过1000个,如果总数量超过1000,需要分批发送
    30  	keys := []string{
    31  		"github1.png",
    32  		"github2.png",
    33  		"github3.png",
    34  		"github4.png",
    35  		"github5.png",
    36  	}
    37  	statOps := make([]string, 0, len(keys))
    38  	for _, key := range keys {
    39  		statOps = append(statOps, storage.URIStat(bucket, key))
    40  	}
    41  	rets, err := bucketManager.Batch(statOps)
    42  	if err != nil {
    43  		// 遇到错误
    44  		if _, ok := err.(*storage.ErrorInfo); ok {
    45  			for _, ret := range rets {
    46  				// 200 为成功
    47  				fmt.Printf("%d\n", ret.Code)
    48  				if ret.Code != 200 {
    49  					fmt.Printf("%s\n", ret.Data.Error)
    50  				} else {
    51  					fmt.Printf("%v\n", ret.Data)
    52  				}
    53  			}
    54  		} else {
    55  			fmt.Printf("batch error, %s", err)
    56  		}
    57  	} else {
    58  		// 完全成功
    59  		for _, ret := range rets {
    60  			// 200 为成功
    61  			fmt.Printf("%d\n", ret.Code)
    62  			fmt.Printf("%v\n", ret.Data)
    63  		}
    64  	}
    65  }