go-sdk icon indicating copy to clipboard operation
go-sdk copied to clipboard

BucketManager.AsyncFetch 总是返回 incorrect zone

Open huangjunwen opened this issue 3 years ago • 1 comments

import (
	"log"

	"github.com/qiniu/go-sdk/v7/auth"
	"github.com/qiniu/go-sdk/v7/storage"
)

func main() {
	mac := auth.New("ak", "sk")
	m := storage.NewBucketManagerEx(mac, nil, nil)
	ret, err := m.AsyncFetch(storage.AsyncFetchParam{
		Url:              "https://thirdwx.qlogo.cn/mmopen/..../132",
		Bucket:           "bucket-name",
		Key:              "path/to/avatar",
		CallbackURL:      "https://callback.com",
		CallbackBody:     "bucket=$(bucket)&key=$(key)&etag=$(etag)&fname=$(fname)&fsize=$(fsize)&mimeType=$(mimeType)&endUser=$(endUser)&attach=",
		CallbackBodyType: "application/x-www-form-urlencoded",
	})
	if err != nil {
		log.Fatalln(err)
	}
	log.Println(ret)
}

2021/03/09 09:58:21 incorrect zone

貌似之前一直是可以的

huangjunwen avatar Mar 09 '21 02:03 huangjunwen

代码里的 regionXXX.ApiHost 是不是缺少了区域机房代号?

        // regionHuanan 表示华南机房
	regionHuanan = Region{
                // ....
		RsHost:    "rs-z2.qbox.me",
		RsfHost:   "rsf-z2.qbox.me",
		ApiHost:   "api.qiniu.com",           // 这里应该是 api-z2.qiniu.com ?
		IovipHost: "iovip-z2.qbox.me",
	}

我 fork 了一份 https://github.com/huangjunwen/go-sdk/commit/0edaa129d3ba76b26f2d7a244db431e4f66aad66, 加上 zone 再测试就好了.

麻烦能否跟进一下这个问题, 谢谢

Ref:

  • https://developer.qiniu.com/kodo/4097/asynch-fetch 这里说明

Host: api-[Zone].qiniu.com 中的 [Zone] 为七牛各区域机房代号

huangjunwen avatar Mar 10 '21 02:03 huangjunwen