Encoding 内容编码头未从Google Storage的对象元数据中删除

Encoding 内容编码头未从Google Storage的对象元数据中删除,encoding,metadata,gzip,google-cloud-storage,Encoding,Metadata,Gzip,Google Cloud Storage,我正在尝试为Google存储对象上的元数据数据添加一个功能。 我可以添加元数据,但在更新元数据(修改值以及删除现有元数据)时,我遇到了问题 当我上传一个像mydata.txt这样的文件时,在成功上传后-它有以下元数据默认值- {ETag="0b1c673f22f98d9862a8198741f0d364", hash=md5=CxxnPyL5jZhiqBmHQfDTZA==, Content-Length=85515, Expires=Fri, 23 Aug 2013 10:08:56 G

我正在尝试为Google存储对象上的元数据数据添加一个功能。 我可以添加元数据,但在更新元数据(修改值以及删除现有元数据)时,我遇到了问题

当我上传一个像mydata.txt这样的文件时,在成功上传后-它有以下元数据默认值-

{ETag="0b1c673f22f98d9862a8198741f0d364",
 hash=md5=CxxnPyL5jZhiqBmHQfDTZA==,
 Content-Length=85515,
 Expires=Fri, 23 Aug 2013 10:08:56 GMT,
 Last-Modified=Thu Aug 22 15:27:58 IST 2013,
 **stored-content-encoding=identity**,
 Cache-Control=private,
 max-age=0,
 Date=Fri Aug 23 15:38:56 IST 2013,
 metageneration=1,
 stored-content-length=85515,
 generation=1377165478501000,
 Content-Type=plain/txt}
案例A: 然后我添加了Content Encoding=utf8,它也成功更新并显示在元数据列表中

但是,当我试图通过从即将更新的元数据列表中删除“Content Encoding”元数据头来删除此项时。它已成功更新元数据,但其元数据详细信息显示内容编码标头

我注意到,当我上传bucket中对象的新副本时,Google Storage支持默认元数据,然后我在其元数据列表中看到了存储内容编码=identity,我没有将其添加到新文件中

有人能帮我吗?如果我将内容编码添加到对象中,如何删除内容编码一次

案例B: 如果我用gzip值添加内容编码,那么它不会添加内容编码

参考:

您的问题并不完全清楚(您如何上传或设置元数据?您说元数据更新成功但仍然失败?),但我会尝试回答

案例A:确实有一个bug阻止删除
内容编码
元数据条目,这可能就是您看到的。它正在处理中,解决后我将在此更新。编辑:此问题现已修复


案例B:请注意,针对特定请求传输的内容编码实际上是针对每个请求进行协商的(例如,代理服务器可能会在路由过程中进行更改)。特别是,如果客户端请求没有包含
Accept encoding:gzip
头,则服务器可以删除存储的对象的gzip编码(即,它解压缩对象)。
x-goog-stored-content-encoding
标题指示存储在谷歌云存储中的内容编码。我假设在本例中仍然报告gzip。

在我的案例中,我试图将
内容编码:gzip
添加到PNG/JPG图像中,当前面提到的案例B被复制时

我猜谷歌云存储足够聪明,不会让图像在客户端解压缩,因此缺少
Content-Encoding:gzip
x-goog-stored-Content-Encoding:gzip

实际上,图像并不打算被gzip(,)-而是实际优化了它们自己(,)。

对于案例A,您说“它成功地更新了[=删除了]元数据,但其元数据详细信息显示了内容编码头。”这与我相矛盾,您能澄清一下吗?首先,如何删除元数据?