将自定义元数据设置为谷歌云存储中的对象



我有一个安卓应用,可以将文件上传到 Firebase Storage 中的存储桶。这样做时,它会将自定义元数据userId. 当我使用gsutil从计算机上传文件时,文档中的以下命令:

gsutil -h x-goog-meta-userId:<userId> cp my_file gs://bucket/folder

它添加了元数据,但它更改了小i的资本I

有什么事情要做,以便元数据保持大写吗?

我有一个依赖于查找元数据作为userId的函数,否则它会返回null,我目前的解决方法是检查userIduserid。但是,很高兴知道仅以小写字母设置元数据键是否更好.
这在从一个存储桶复制到另一个存储桶时非常不方便,因为它会添加额外的自定义元数据而不是替换适当的元数据。

Google Cloud Storage 的 XML API 使用 HTTP 标头来公开和设置自定义对象元数据。根据 RFC 2616,HTTP 标头不区分大小写,因此虽然您可以使用其他 API 指定大小写,但我们通常不鼓励依赖它。

也就是说,我同意现有的 gsutil 行为可能是一个错误。

我不建议您在元数据(以及一般的标头(中使用大写字母。几个月前我收到了一封电子邮件,我在此线程中找到了一份副本

谷歌以小写形式转换所有标题。因此,今天养成对所有 API 调用使用小写标头的习惯。

最新更新