Jos*_*ley 2 google-cloud-storage
试图让 Google Cloud Storage 在我的应用程序上运行。我成功地将图像保存到存储桶,但在尝试检索图像时,收到此错误:
GCS Storage (615.3ms) Generated URL for file at key: 9A95rZATRKNpGbMNDbu7RqJx ()
Completed 500 Internal Server Error in 618ms (ActiveRecord: 0.2ms)
Google::Cloud::Storage::SignedUrlUnavailable (Google::Cloud::Storage::SignedUrlUnavailable):
Run Code Online (Sandbox Code Playgroud)
知道发生了什么吗?我在他们的文档中找不到这个错误的解释。
在这里提供一些解释......
Google App Engine(以及 Google Compute Engine、Kubernetes Engine 和 Cloud Run)提供与正在运行的 VM 或实例相关联的“环境”凭据,但仅限于 OAuth 令牌的形式。对于大多数 API 调用来说,这已经足够且方便了。
但是,也有少数例外,Google Cloud Storage 就是其中之一。最近的存储客户端(包括google-cloud-storage gem)可能需要完整的服务帐户密钥来支持某些涉及签名 URL 的调用。App Engine(或其他托管环境)不会自动提供此完整密钥。您需要自己提供一个。因此,正如之前的答案所示,如果您使用的是云存储,则可能无法依赖“环境”凭据。相反,您应该创建一个服务帐户,下载一个服务帐户密钥,并将其提供给您的应用程序(例如,通过ActiveStorage 配置,或通过设置GOOGLE_APPLICATION_CREDENTIALS 环境变量)。
| 归档时间: |
|
| 查看次数: |
1732 次 |
| 最近记录: |