谷歌云,如何重写存储桶服务的负载均衡器主机和路径,这样我就不必将文件嵌套在下面,例如:/files/public?
Posted
技术标签:
【中文标题】谷歌云,如何重写存储桶服务的负载均衡器主机和路径,这样我就不必将文件嵌套在下面,例如:/files/public?【英文标题】:Google cloud, how to rewrite load balancer host & path for bucket service so I don't have to nest my files under, example: /files/public? 【发布时间】:2021-06-19 02:15:01 【问题描述】:我知道有一些关于这个问题的线程,但他们都有 2019 年的答案,其中其他行为和功能可用,例如,当时您甚至无法将存储桶添加为后端服务负载均衡器。
我正在尝试从 mydomain.com/storage/public 的存储桶 A 和来自 mydomain.com/storage/private 的存储桶 B 提供文件,这不是问题。
我没有成功做的是重写路径,这样我就不必将我的所有文件添加到嵌套在文件夹 /storage/public
中的存储桶 A 和 /storage/private
中的存储桶 B 中——而只是从存储桶的根部为它们提供服务。
我添加了以下不起作用的路径和主机重写规则:
host:
path: /*
我假设这告诉它将 mydomain.com/storage/public/myfile.png 重写为 mydomain.com/myfile.png,但这似乎不起作用。
【问题讨论】:
您是否有任何具体原因不想让对象以正确的路径存储? 我不想根据负载均衡器上的配置将我的文件嵌套到文件夹中——我想让两者保持分离。尽管如此,我已经找到了实现这一目标的正确语法,并且它已经在生产中完美地工作了几个星期。稍后将发布解决方案。 【参考方案1】:据我了解,您可能在公共文件夹中有一个文件,例如 xyz、.png,因此您的 URL 看起来像 mydomain.com/storage/public/xyz.png
并且希望从根文件夹(即 mydomain.com/storage/xyz.png)提供文件。您还尝试过重写路径但无法这样做。让我知道我是否正确捕获了您的信息。
我建议您通过以下步骤修改您的配置: 单击负载均衡器上的编辑 更改主机和路径规则:
-
在屏幕的左栏中,单击主机和路径规则。
选择高级主机和路径规则(URL 重定向、URL 重写)。
点击包含非默认路径规则的行,
单击铅笔图标编辑 /storage/* 将流量路由到单个后端:后端名称
在路径下,删除 /storage/* 并添加 /*。
在操作下,选择将流量路由到单个后端。
单击附加操作(URL 重写)。
将主机重写留空。
在路径前缀重写下,输入 /storage/。
在后端下,选择后端名称并单击保存并单击完成。
如果一切正常,请单击更新以更新您的 HTTP 负载平衡器。
更多信息请参考the documentation。
【讨论】:
以上是关于谷歌云,如何重写存储桶服务的负载均衡器主机和路径,这样我就不必将文件嵌套在下面,例如:/files/public?的主要内容,如果未能解决你的问题,请参考以下文章