google-cloud-storage - Google Cloud API Gateway 端点如何从 Cloud Storage 文件传送数据?
问题描述
我正在构建一个大型 API,该 API 将使用 Google Cloud API Gateway 将各种端点路由到不同的服务——一些可能是无服务器云函数,其他将由我们 Kubernetes 集群中的 Rails 应用程序提供服务,等等。
我们将选择一些信息端点,这些端点需要来自客户端的未经身份验证的访问,其中信息很少会改变——大约每隔几个月就会改变一次。我希望将这些端点的内容写入谷歌云存储(在一个不是世界可读的存储桶中),然后允许 API Gateway 配置将特定端点指向它们(一个世界可读的存储桶不会满足该项目的安全标准)。
我为 API 网关创建了一个自定义服务帐户,并为相关存储桶赋予了一个存储对象查看者角色。
但是,在使用该服务帐户创建 API 配置并在 Postman 中请求端点之后,我没有看到我期望的 JSON 输出,而是看到了 Google 登录页面的 HTML。
我的 OpenAPI 配置中的端点定义:
paths:
/products:
get:
x-google-backend:
address: https://storage.cloud.google.com/<BUCKET_NAME>/products.json
summary: List of products in JSON format
operationId: listProductsJson
produces:
- application/json
responses:
"200":
description: a product list
schema:
type: array
items:
$ref: '#/definitions/Product'
这是邮递员的回应:
有没有办法让这个设置工作,甚至调试这里发生的事情?我已经看到人们在 Cloud Functions 和 JWTaud
价值方面存在类似的问题,但遵循对他们有用的方法似乎对 Cloud Storage 没有任何影响。
任何帮助将非常感激!(我是 GCloud 世界的新手,所以如果有人对这些主要是静态的端点有替代实现,那也很酷。)
解决方案
您使用的网址不正确。使用https://storage.googleapis.com/<BUCKET_NAME>/products.json
代替https://storage.cloud.google.com/<BUCKET_NAME>/products.json
推荐阅读
- jquery - Jquery - 在以编程方式创建的父元素内创建多个 DOM 元素
- c++ - 当我将构造函数作为参数显式调用时,不会调用移动构造函数
- node.js - CORS 问题 - AWS Elastic Beanstalk 和 AWS Elastic Cache
- python - 如何使用烧瓶的 db.session.add() 修复将用户的两个实例插入 mysql 表?
- java - 捕获身份验证异常
- angular - getting error in angular project in the import statement
- xamarin - 如果调用 ExecuteQuerySegmentedAsync,则不填充 xamarin 控件的对象列表
- r - 在 imageR 包中查找最大轮廓并应用蒙版
- python - MAC Jupyter Notebook add Graphviz to Path, Graphviz ExecutableNotFound: How to add Graphviz to path?
- excel - 将值从多张纸复制到一张纸