问题标签 [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.
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时它可以工作。但是,我不能这样做,因为后端服务需要用户令牌。
提前致谢
django - 如何默认将“公共”添加到 Django 的缓存视图中?
我正在尝试使用 Google Cloud CDN 来缓存 Django 响应。Django 将缓存控制标头正确设置为最大年龄,但它缺少标头的“公共”部分。
基本上,目前所有缓存的视图都有:
但我想要:
编辑:我当前的 settings.py 有以下缓存:
所以我基本上遵循了 https://docs.djangoproject.com/en/3.1/topics/cache/。所以我缓存了整个网站。对于那些我不想缓存的视图,我使用@never_cache
.
编辑 2:我可以将“public=True”添加到每个带有注释的视图中,但我想要整个站点的解决方案。
google-cloud-platform - 在 Google Cloud 中创建 CDN 代理以进行细分分析
我想创建一个 CDN 代理以通过自定义域发送分析事件,如下所述:https ://segment.com/docs/connections/sources/catalog/libraries/website/javascript/custom-proxy/
但是,在他们的教程中,他们使用了 Amazon CloudFront。等效的 Google Cloud 服务是什么?
谢谢!
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
.
我已阅读以下相关文章:
- https://cloud.google.com/storage/docs/request-endpoints
- https://devopsdirective.com/posts/2020/10/gcs-cloudflare-hosting/
- https://community.cloudflare.com/t/using-cloudflare-cdn-https-with-google-cloud-storage/15602
- 如何使用 cloudflare 缓存谷歌云存储(GCS)?
- 将 Cloudflare CDN + HTTPS 与 Google 云存储结合使用
- 使用 CloudFlare 对 Google Cloud Storage Bucket 进行 CDN
- https://medium.com/@pablo.delvalle.cr/cloudflare-and-google-cloud-for-hosting-a-static-site-fd2e1a97aa9b
有没有人知道如何使 Cloudflare CDN 在这种情况下工作?
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.cacheHit
true
jsonpayload_type_loadbalancerlogentry.statusdetails
response_from_cache
jsonpayload_type_loadbalancerlogentry.cacheid
当在浏览器中手动执行相同的 GET 请求时,我们会在 15-20 毫秒左右获得 TTFB 的预期结果。
知道在哪里寻找线索吗?
google-cloud-platform - GCP HTTP 负载平衡器到 TCP 负载平衡器
我想弄清楚如何将 TCP 负载平衡器与 GCP 中的 http/https 负载平衡器连接起来。
我已经在 GKE 集群上安装了 kong,它创建了一个 TCP 负载均衡器。
现在,如果我有多个带有 Kong 的 GKE 集群,它们都将拥有自己的 TCP 负载均衡器。
从用户的角度来看,我需要做一个 DNS 负载平衡,我认为这并不总是富有成效的。
所以我想弄清楚我是否可以使用 Cloud CDN、NEG 和/或 HTTP/HTTPS 负载均衡器作为 Kong 的 TCP 负载均衡器的前端。
有可能吗,还有其他选择吗...谢谢!!!
google-cloud-platform - 如何在 Google Cloud CDN 上设置默认首页 index.html
我在谷歌云中为存储静态网页配置了负载均衡和CDN,在负载均衡中配置了域名访问。我在浏览器访问域名的时候,域名后缀总是显示“index.html”,但是我不想如果要这个后缀,怎么配置在访问时不显示这个后缀浏览器。
node.js - 如何使我的 Express 服务器中的 Google Cloud CDN 缓存失效?
有没有办法从我的快速服务器中使 Cloud CDN 上的缓存内容失效/清除?
例如,如果我正在生成服务器呈现的内容以使其随时可用,并且我从我的网站更新特定路线,例如编辑blogPost
. 我需要执行以下操作:
我怎样才能从我的快递服务器上做到这一点?
您可以通过以下方法使来自 Cloud CDN 的缓存内容失效:
- 使用控制台:
- 使用
gcloud
SDK:
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
.