问题标签 [google-cloud-cdn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
114 浏览

javascript - 不存在“Access-Control-Allow-Origin”标头 GCP 存储桶 CDN

我有一个具有下载 URL 的后端服务,比如说 example.com/download/{filkey}

每当调用此 URL 时,它都会创建 Google 存储桶 CDN 签名 URL。并且 example.com/download/{filkey} API 的响应将在其响应中包含 308(永久重定向)状态代码和 location = {Google signed CDN URL}。这意味着每当我在浏览器中点击 example.com/download/{filkey} 时,它将被重定向到 CDN URL,并且图像将显示在浏览器中并按预期工作。

但是,当我尝试在 JS 代码中调用 example.com/download/{filkey} 时会出现问题。它告诉我没有“Access-Control-Allow-Origin”标头存在

在此处输入图像描述

我还更新了我的谷歌存储桶的 CORS 政策。但仍然没有运气这是我目前对谷歌存储桶的 CORS 政策

在此处输入图像描述

我从很长的日子里就被这个问题困住了。通过在我的请求/响应中添加/删除标题,我尝试了很多不同的方法。当我在我的 JS 请求中添加mode : no-cors时它可以工作。但是,我不能这样做,因为后端服务需要用户令牌。

提前致谢

0 投票
1 回答
100 浏览

django - 如何默认将“公共”添加到 Django 的缓存视图中?

我正在尝试使用 Google Cloud CDN 来缓存 Django 响应。Django 将缓存控制标头正确设置为最大年龄,但它缺少标头的“公共”部分。

基本上,目前所有缓存的视图都有:

但我想要:

编辑:我当前的 settings.py 有以下缓存:

所以我基本上遵循了 https://docs.djangoproject.com/en/3.1/topics/cache/。所以我缓存了整个网站。对于那些我不想缓存的视图,我使用@never_cache.

编辑 2:我可以将“public=True”添加到每个带有注释的视图中,但我想要整个站点的解决方案。

0 投票
1 回答
401 浏览

google-cloud-platform - 在 Google Cloud 中创建 CDN 代理以进行细分分析

我想创建一个 CDN 代理以通过自定义域发送分析事件,如下所述:https ://segment.com/docs/connections/sources/catalog/libraries/website/javascript/custom-proxy/

但是,在他们的教程中,他们使用了 Amazon CloudFront。等效的 Google Cloud 服务是什么?

谢谢!

0 投票
0 回答
568 浏览

google-cloud-storage - 适用于 Google 云存储桶的 Cloudflare CDN

我有一个自定义域 (cdnexample.com) 和一个 Firebase Google Cloud Storage Bucket (examplefiles.appspot.com)。我想将 Cloudflare CDN 中的 cdnexample.com 域配置为来自 GCS 存储桶 (examplefiles.appspot.com)。

例如,给定一个 GCS 文件:https ://storage.googleapis.com/examplefiles.appspot.com/image1.jpg我想让 Cloudflare CDN 文件正常工作:https ://cdnexample.com/image1.jpg

问题是我无法更改 GCS 存储桶名称 (examplefiles.appspot.com) 以匹配我的 Cloudflare 域名 (cdnexample.com)。我在下面遇到的所有解决方案都要求 GCS 存储桶名称与 Cloudflare 域名匹配,并将 CNAME 配置与c.storage.googleapis.com.

我已阅读以下相关文章:

有没有人知道如何使 Cloudflare CDN 在这种情况下工作?

0 投票
2 回答
376 浏览

google-cloud-platform - 来自 Google CDN 的高延迟 - 如何解决?

我们正在尝试找出 Google CDN 延迟高的原因。

我们的网站位于 Google 的 http_load_balancer 后面,并开启了 CDN。

例如,通过检查 jpg 文件 (43Kb) 的示例 GET 请求,我们可以从 http_load_balancer 日志中看到大约 30% 的此类请求的httpRequest.latency时间 > 1 秒,而且很多请求需要更长的时间,例如几秒或几百秒...... .

这只是通过查看 24 小时日志样本(大约 6K 相同的请求)。

所有这些请求的httpRequest.cacheLookup和是. 也是,值显示正确的区域。httpRequest.cacheHittruejsonpayload_type_loadbalancerlogentry.statusdetailsresponse_from_cachejsonpayload_type_loadbalancerlogentry.cacheid

当在浏览器中手动执行相同的 GET 请求时,我们会在 15-20 毫秒左右获得 TTFB 的预期结果。

知道在哪里寻找线索吗?

0 投票
1 回答
344 浏览

google-cloud-platform - GCP HTTP 负载平衡器到 TCP 负载平衡器

我想弄清楚如何将 TCP 负载平衡器与 GCP 中的 http/https 负载平衡器连接起来。

我已经在 GKE 集群上安装了 kong,它创建了一个 TCP 负载均衡器。

现在,如果我有多个带有 Kong 的 GKE 集群,它们都将拥有自己的 TCP 负载均衡器。

从用户的角度来看,我需要做一个 DNS 负载平衡,我认为这并不总是富有成效的。

所以我想弄清楚我是否可以使用 Cloud CDN、NEG 和/或 HTTP/HTTPS 负载均衡器作为 Kong 的 TCP 负载均衡器的前端。

有可能吗,还有其他选择吗...谢谢!!!

0 投票
1 回答
45 浏览

google-cloud-platform - Google Cloud Platform 中用于内容的通用存储桶,它将确定用户的位置并从最近的服务器提供内容?

我是一名移动应用程序开发人员。我使用 Google Cloud 存储桶来存储我在应用程序中使用的 10 秒视频和照片。每天有成千上万的用户使用应用程序,我想使用 CDN 来确保应用程序的内容以最小的延迟和最大的速度交付给用户。

目前,我只能在一个区域内创建一个存储桶以供选择:美国、欧洲和亚洲。如何在 Google Cloud Platform 中创建一个通用存储桶来存储应用程序内容,这将确定用户的位置并从离用户最近的服务器提供内容?

谢谢!

在此处输入图像描述

0 投票
1 回答
591 浏览

google-cloud-platform - 如何在 Google Cloud CDN 上设置默认首页 index.html

我在谷歌云中为存储静态网页配置了负载均衡和CDN,在负载均衡中配置了域名访问。我在浏览器访问域名的时候,域名后缀总是显示“index.html”,但是我不想如果要这个后缀,怎么配置在访问时不显示这个后缀浏览器。

0 投票
1 回答
1246 浏览

node.js - 如何使我的 Express 服务器中的 Google Cloud CDN 缓存失效?

有没有办法从我的快速服务器中使 Cloud CDN 上的缓存内容失效/清除?

例如,如果我正在生成服务器呈现的内容以使其随时可用,并且我从我的网站更新特定路线,例如编辑blogPost. 我需要执行以下操作:

我怎样才能从我的快递服务器上做到这一点?


来自Cloud CDN - 使缓存内容无效

您可以通过以下方法使来自 Cloud CDN 的缓存内容失效:

  • 使用控制台:

在此处输入图像描述

  • 使用gcloudSDK:

在此处输入图像描述

0 投票
1 回答
474 浏览

cookies - 使用 Google Cloud CDN 签名的 Cookie 以 403 响应

我正在尝试通过 Google Cloud CDN 让 hls / dash 流工作,以获得视频点播解决方案。文件/清单位于谷歌云存储桶中,一切看起来都配置正确,因为我遵循了文档https://cloud.google.com/cdn/docs/using-signed-cookies的每一步。

现在,我正在使用来自Google Cloud CDN 的等效 Node.js 代码,以存储桶作为后端签名 cookie,以创建一个具有正确签名密钥名称和值的签名 cookie,该名称和值是我之前在谷歌云中设置的。cookie 被发送到我在 Google Cloud 中的负载平衡器后端。

可悲的是,我总是收到 403 响应说<?xml version='1.0' encoding='UTF-8'?><Error><Code>AccessDenied</Code><Message>Access denied.</Message></Error>

更多信息:

  • 在负载均衡器后端激活签名的 urls/cookies
  • cdn-account 存储桶中的 IAM 角色设置为“objectViewer”
  • 创建、保存并用于签署 cookie 的签名密钥

非常感谢您对此的任何帮助。

编辑: 我刚刚尝试了确切的 python 代码谷歌状态来从https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/cdn/snippets.py使用以下参数创建签名的 cookie:

称呼:sign_cookie('http://cdn.myurl.com/', 'mykeyname', 'mybase64encodedkey', 1614110180545)

密钥是直接从谷歌复制的,因为我在那里生成了它。

负载均衡器日志写入invalid_signed_cookie.