将自定义元数据设置为 Google 云存储中的对象
Setting Custom metadata to an object in Google Cloud Storage
我有一个 android 应用程序可以将文件上传到 Firebase Storage 中的存储桶。当它这样做时,它会添加自定义元数据 userId
。
当我使用 gsutil
和 docs 中的以下命令从我的计算机上传文件时:
gsutil -h x-goog-meta-userId:<userId> cp my_file gs://bucket/folder
它添加了元数据但是它改变了大写 I
一个小的 i
.
有什么办法可以让元数据保持大写吗?
我有一个函数依赖于查找元数据 userId
,否则它 returns null
,我目前的解决方法是同时检查 userId
和 userid
。但是继续前进很高兴知道仅以小写字母设置元数据键是否更好。
这在从一个存储桶复制到另一个存储桶时非常不方便,因为它会添加额外的自定义元数据,而不是替换适当的元数据。
我不建议您在元数据中使用大写字母(通常 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 行为可能是一个错误。
我有一个 android 应用程序可以将文件上传到 Firebase Storage 中的存储桶。当它这样做时,它会添加自定义元数据 userId
。
当我使用 gsutil
和 docs 中的以下命令从我的计算机上传文件时:
gsutil -h x-goog-meta-userId:<userId> cp my_file gs://bucket/folder
它添加了元数据但是它改变了大写 I
一个小的 i
.
有什么办法可以让元数据保持大写吗?
我有一个函数依赖于查找元数据 userId
,否则它 returns null
,我目前的解决方法是同时检查 userId
和 userid
。但是继续前进很高兴知道仅以小写字母设置元数据键是否更好。
这在从一个存储桶复制到另一个存储桶时非常不方便,因为它会添加额外的自定义元数据,而不是替换适当的元数据。
我不建议您在元数据中使用大写字母(通常 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 行为可能是一个错误。