Google cloud platform 是否可以在没有域命名的情况下为GCS存储桶设置索引文件?

Google cloud platform 是否可以在没有域命名的情况下为GCS存储桶设置索引文件?,google-cloud-platform,google-cloud-storage,google-cloud-dns,google-cloud-load-balancer,Google Cloud Platform,Google Cloud Storage,Google Cloud Dns,Google Cloud Load Balancer,我们有一个特定的情况,我们希望从GCS(通过loadbalancer w G CDN)为静态网站提供服务,并且我们强烈希望不要对bucket使用域命名 我们不希望这样做的原因是域验证过程对用户非常不友好,需要我们的用户执行额外的步骤(我认为我们应该能够相当广泛地自动化此过程,但这也是我试图规避的大量额外开发工作) 我试过了 gsutil web set -m index.html gs://{bucket-name} 我将mike.adhero.io记录设置为负载平衡器的IP。但它仍然显示xm

我们有一个特定的情况,我们希望从GCS(通过loadbalancer w G CDN)为静态网站提供服务,并且我们强烈希望不要对bucket使用域命名

我们不希望这样做的原因是域验证过程对用户非常不友好,需要我们的用户执行额外的步骤(我认为我们应该能够相当广泛地自动化此过程,但这也是我试图规避的大量额外开发工作)

我试过了

gsutil web set -m index.html gs://{bucket-name}
我将mike.adhero.io记录设置为负载平衡器的IP。但它仍然显示xml样式丢失错误。mike.adhero.io/index.html按预期工作

有没有办法解决这个问题

是否可以为没有域的GCS存储桶设置索引文件 命名

不会。原因是这会破坏正常bucket访问(API请求)的API行为

MainPageSuffix
NotFoundPage
网站配置仅用于通过CNAME端点或云负载平衡到达云存储的请求。例如,对www.example.com的请求会显示索引页,但对storage.googleapis.com/www.example.com的等效请求不会显示索引页

因此,对云存储域(如Storage.googleapis.com/www.example.com)的请求的API行为被保留。例如,您可以继续在www.example.com bucket中列出对象,就像在任何其他bucket中一样。对于www.example.com bucket,您收到的对象列表包括404.html和index.html

这在以下谷歌文档中有记录:


不,正如约翰·汉利所说,这是不可能的。当您配置没有域命名的bucket时,可以将其视为云上的存储空间,您需要指定路径。您可以将其视为硬盘驱动器和文件夹,这就是为什么只有在指定文件“mike.adhero.io/index.html”的路径和名称时才能正常工作的原因。一旦您使用域名配置了一个bucket,API就会意识到您想要使用“网站服务”而不是“存储bucket服务”。

据我所知,您试图使用带有存储桶服务配置的网站服务,从设计和目标来看,这是不可能/可行的。如果我错了,请纠正我。

正如John所提到的,由于负载平衡器仅用作所配置后端服务的访问点和负载分配,因此需要在云存储(当您指定域名时)配置此选项。

关于域验证过程[0],是的,最初可能有点困难,一旦您完成了一次或两次验证过程,就非常容易了。考虑到您的注册者可能是Google CLOUD DNS,我将与您分享两个视频,第一个是关于web搜索控制台[1],第二个是关于向云DNS添加TXT记录[2]。你可以注意到这个过程是一样的,你只需要考虑每个注册者的过程中的差异。
希望这些信息有帮助
祝你今天愉快


[0]
[1]

[2]

“MainPageSuffix和NotFoundPage网站配置仅用于通过CNAME端点或云负载平衡到达云存储的请求。”>>“我将mike.adhero.io记录设置为负载平衡器的IP”我正在使用负载平衡。。我理解storage.googleapis.com/www.example.com不起作用,我也理解,我希望它能通过负载平衡器起作用,但它似乎不起作用(至少在没有名为bucket的域的情况下),我不确定您想说什么。Google负载平衡器不会在云存储之前实现网站配置。这是由云存储管理的。您说过“通过CNAME端点或云负载平衡”。所以我理解,如果流量通过负载均衡器或CNAME路由,GCS将理解它必须充当“网站服务”。。但我现在理解的是,它仍然依赖于作为域的bucket名称。因此,在现实中,除了将bucket命名为域并编写代码来自动化验证过程之外,我们没有其他选择。谢谢