【问题标题】:Google App Engine - Serving video url's from Google Cloud Storage Error in ChromeGoogle App Engine - 在 Chrome 中提供来自 Google Cloud Storage 错误的视频网址
【发布时间】:2016-07-21 20:58:56
【问题描述】:

我现在正在 Google App Engine 中本地开发一个应用程序,用户可以在其中上传视频。我已经设置了谷歌云存储库并将读取权限设置为公开。

在开发服务器中,您可以通过 URL 访问文件:http://localhost:8080/_ah/gcs/bucket/filename

我正在尝试在视频 HTML 标记中提供文件,但这会导致 Chrome 出现错误。我收到消息:加载资源失败:服务器响应状态为 500(内部服务器错误)。服务器控制台显示文件请求失败。

这只发生在 Chrome 中,在其他浏览器中也可以正常工作。

知道为什么会这样吗?调试起来有点困难。

【问题讨论】:

  • 所有请求都应直接发送到云存储,因此您不会/不应该在服务器日志中看到任何内容。为什么涉及服务器?
  • @Andrei Volgin 我不太确定。我只是在视频标签中输入 URL 作为 src 值。以下是服务器日志:请求/_ah/gcs/app_default_bucket/5733953138851840/user/IMG_2551.mp4 faileddefault: "GET /_ah/gcs/app_default_bucket/5733953138851840/user/IMG_2551.mp4 HTTP/1.1" 500

标签: google-chrome google-app-engine video


【解决方案1】:

您需要使用指向 Cloud Storage 对象的 URL。它看起来像:

https://storage.googleapis.com/YOUR_BUCKET/YOUR_OBJECT

在控制台中查看您的默认应用存储桶的名称。通常与您的应用 ID 相同。

【讨论】:

  • 我现在正在开发服务器中进行测试。在开发服务器中,URL 是:http://localhost:8080/_ah/gcs/bucket/filename 这些 URL 可以在除 Chrome 之外的所有浏览器上运行。
  • 我阅读了文档。因为我将x-goog-acl 设置为public-read,所以我相信我使用的是文档中引用的 Cloud Storage API。公共 URL 可以通过 https://storage.googleapis.com/YOUR_BUCKET/YOUR_OBJECT 访问,但我相信 dev 可以通过 http://localhost:8080/_ah/gcs/bucket/filename 访问它。正如我所说,这些链接在其他浏览器中有效,只是在 Chrome 中无效。感谢您的帮助!
  • 如果您收到 500 服务器错误,这与 Chrome 或任何浏览器无关。您正在访问您的服务器,而不是直接从 Cloud Storage 获取文件 - 这是问题的根源。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 2023-03-23
  • 2015-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多