首页 > 解决方案 > 如何将代理添加到 s3,以便我可以使用托管在 EC2 实例中的服务?

问题描述

我是 aws 新手,我已经在 s3 存储桶中托管了所有 UI,也使用了 cloudfont。现在我已经在 EC2 实例中托管了所有的 restApi。

角度 UI -> s3 存储桶(example.com)后端 SpringBoot restApi -> EC2 实例(api.exaple.com)

但是有人可以告诉如何从 S3 (example.com) 存储桶/云前端使用托管在 EC2 (api.example.com) 中的 API 调用。

我在 EC2 实例 (api.example.com:8080) 中托管了 sprint boot rest api。

  1. s3 存储桶说方法不允许用于(GET、POST、PUT、DELETE)方法。
  2. 由于上述原因,我在代码中对 api.example.com 进行了硬编码,因此我的所有请求都将重定向到 api.example.com -> 这里的问题是浏览器不允许跨源。

现在我想知道如何使它工作。

标签: amazon-web-servicesspring-bootrestamazon-s3amazon-ec2

解决方案


您需要在 S3 存储桶上启用 CORS(跨域资源共享)。

跨域资源共享 (CORS) 为加载在一个域中的客户端 Web 应用程序定义了一种与不同域中的资源进行交互的方式。借助 CORS 支持,您可以使用 Amazon S3 构建丰富的客户端 Web 应用程序,并有选择地允许跨域访问您的 Amazon S3 资源。


推荐阅读