我正在尝试动态设置标题部分中的 x-goog-meta-reference,因此我想在函数签名中传递一个名为 reference 的参数,并将其分配给标题中的 x-goog-meta-reference。请参阅x-goog-meta-reference
下面的代码示例。我关注了这个关于规范请求的链接。
我的示例代码来自这里,但它是我的产品代码的编辑版本。
func GenerateSignedURL(ctx context.Context, bucket string, key string, expiration time.Time,
) (string, error) {
gcsClient, err := storage.NewClient(ctx)
if err != nil {
return "", fmt.Errorf("storage.NewClient: %v", err)
}
defer gcsClient.Close()
storage.SignedURL()
opts := &storage.SignedURLOptions{
Scheme: storage.SigningSchemeV4,
Method: "PUT",
ContentType: "text/csv",
Headers: []string{
"x-goog-meta-reference: xxx", // << I want xxx value to be whatever I pass to this function as an arg
},
Expires: expiration,
}
url, err := gcsClient.Bucket(bucket).SignedURL(key, opts)
if err != nil {
log.WithContext(ctx).Warn("Failed to generate a GCS signed URL")
return "", err
}
return url, nil
}
我尝试查看一些示例,但它们都是 s3 并且我没有遇到任何 gcp 示例代码。但是,我确实发现了这个问题,但我自己无法弄清楚。
慕工程0101907
相关分类