问题描述
我们已将数据上传到 Google 存储桶,并将该存储桶配置为 Google 负载均衡器的后端。因此,我可以通过 https://images.mywebsite.com 访问这些文件。
但是,我们的文件名和目录包含大写和小写字符。
似乎 Google 存储桶区分大小写,因此如果文件保存为 IMAGE.jpg
并且我们请求 image.jpg
,我们会收到以下错误:
NoSuchKey
指定的键不存在。
有没有办法从我们的 Google 存储桶中删除区分大小写的功能?如果没有,有没有办法解决这个问题,让客户可以以不区分大小写的方式访问我们的文件?
例如,我们可以将存储桶中的所有文件重命名为小写,然后在我们的负载均衡器上创建一些规则以重定向到小写名称吗?
解决方法
目前还没有删除存储分区区分大小写的功能,但您可以选择通过 gsutil
或客户端库重命名对象。如果您希望以编程方式重命名对象,请从 here's a good example 开始。
如果你不想要那个选项,正如你所说,你也可以在你的负载均衡器上创建一个主机和路径规则来将你的对象重定向到一个小写前缀,但你必须手动执行这些,如果你有很多要重命名的对象,这可能是一项乏味的工作。