Google cloud platform 从Google Cloud Storege API读取响应头

Google cloud platform 从Google Cloud Storege API读取响应头,google-cloud-platform,google-cloud-storage,Google Cloud Platform,Google Cloud Storage,我使用以下代码从谷歌云存储下载图像。但我无法看到eTAG,在响应的头上过期。当我在浏览器中使用图像url时,我可以看到这些标记。从google云存储获取数据时,有没有一种方法可以读取响应头 // Creates a client. client, err := storage.NewClient(ctx) if err != nil { log.Fatalf("Failed to create client: %v", err) } rc, err := clien

我使用以下代码从谷歌云存储下载图像。但我无法看到eTAG,在响应的头上过期。当我在浏览器中使用图像url时,我可以看到这些标记。从google云存储获取数据时,有没有一种方法可以读取响应头

// Creates a client.
client, err := storage.NewClient(ctx)
if err != nil {
    log.Fatalf("Failed to create client: %v", err)
}

rc, err := client.Bucket("mybucket").Object(imageName).NewReader(ctx)
if err != nil {
    fmt.Println(err)

    return
}
defer rc.Close()

似乎获得
etag
并不像我们想象的云存储那么简单。为了能够获取
etag
,您需要首先从对象加载元数据,以便在那里找到
etag
。您可以使用此文档,以便获取有关如何返回图像的代码示例,然后使用
etag
获取元数据。考虑到你需要做什么才能到达
etag
,记住你需要做两个调用来实现它——一个用于图像,另一个用于元数据本身。

Hi@max看来获取
etag
并不像我们想象的云存储那么简单。似乎您需要读取元数据,然后在那里找到
etag
值。考虑到这一点,请您尝试一下读取您文件的metada(示例可用),并检查
.Etag
是否可用?如果没有,请按照此代码进行尝试,成功返回
etag
。谢谢@gso_gabriel,元数据已包含etag。我使用了你建议的链接。只是我必须打两个电话,一个是图像,另一个是元数据。你可以把它作为这个问题的答案,而不是评论。将其标记为正确答案hi@max很高兴听到它帮助了您!我已经发布了答案。