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

Setting Custom metadata to an object in Google Cloud Storage

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

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

它添加了元数据但是它改变了大写 I 一个小的 i.

有什么办法可以让元数据保持大写吗?

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

我不建议您在元数据中使用大写字母(通常 headers)。我在几个月前收到了一封电子邮件,我在 thread

中找到了一份副本

Google 将所有 header 转换为小写。因此,今天就养成使用小写字母 header 进行所有 API 调用的习惯。

Google Cloud Storage 的 XML API uses HTTP headers to expose and set custom object metadata. Per RFC 2616、HTTP headers 不区分大小写,因此您可以指定其他 [= 的大小写15=]s,我们通常不鼓励依赖它。

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