Google Cloud Storage - 负载均衡器 - 主机和路径规则

Google Cloud Storage - 负载均衡器 - 主机和路径规则

我有一个网站,上面有Google 云端负载均衡器,称为santi.com

我有一个Google 云存储桶称为santi-pictures

我已经成功设置主机和路径规则通过在 Google Cloud Console 中输入此信息,从此负载均衡器到此存储桶。

+-----------+-------------+----------------+
| Hosts     | Paths       | Backends       |
+-----------+-------------+----------------+
| santi.com | /pictures/* | santi-pictures |
+-----------+-------------+----------------+

当我在浏览器中访问此 URL 时,它可以正常工作......

http://santi.com/pictures/me.jpg

...只要这个位置有图片在存储桶中:

gs://santi-pictures/pictures/me.jpg

但我该如何更改我的负载均衡器配置这样当我使用上面提到的 URL 时,就可以看到下面的图片了:

gs://santi-pictures/me.jpg

这已经是一个图片存储桶,因此对我来说,在其中放置一个名为图片的文件夹是没有意义的。

感谢您的帮助。

答案1

我使用以下主机和路径规则进行了测试,并进行了验证http://负载均衡器 ip/文件名并且能够访问负载均衡器后端配置中定义的存储桶根目录中的文件。

| 主机 | 路径 | 后端 |

| WEB 服务器 IP | /* | 后端服务名称 |

尝试将图像复制到负载均衡器后端配置中定义的存储桶根目录中,并添加或更改“主机和路径规则”,将路径定义为“/*”(不带引号)。您应该能够使用“gs://bucket-name/file-name”或“http://负载均衡器 ip/文件名

希望能帮助到你。

答案2

我希望做和@santiago-arizti 一样的事情,但截至撰写本文时,我认为这是不可能的。根据谷歌文档

要提供的 Cloud Storage 对象取决于您的网址映射和您请求的网址。如果请求路径映射到网址映射中的后端存储桶,则通过将完整请求路径附加到网址映射指定的 Cloud Storage 存储桶来确定 Cloud Storage 对象。

例如,如果您将 /static/* 映射到 gs://[EXAMPLE_BUCKET],则对 https:///static/path/to/content.jpg 的请求将尝试提供 gs://[EXAMPLE_BUCKET]/static/path/to/content.jpg

答案3

不过,截至 2019 年 12 月 30 日,Google Cloud CDN 目前还无法实现这一点。在 AWS 上也不可能,但借助 AWS 去年推出的 Lambda @ Edge 产品,您可以根据自己的喜好重写 URL,以及使用 Lambda 函数在边缘执行任何计算,例如身份验证或其他自定义工作流。尽管原始发帖人能够在没有 URL 重写的情况下使其工作,但在我看来,如果您需要在 CDN 边缘进行计算,这实际上是一项强大的功能。事实上,这是 Cloudflare CDN 的一大独特价值主张(称为 Cloudflare Workers)。谷歌在其 Cloud Function 与其他服务的集成方面进展缓慢,但我可以想象这种集成将在几年后出现在 Google Cloud CDN 上。

相关内容