【问题标题】:Method to upload files to S3 bucket from mobile / web client - Serverless从移动/网络客户端上传文件到 S3 存储桶的方法 - 无服务器
【发布时间】:2022-01-02 00:10:33
【问题描述】:

我有一个使用 AWS AppSync 作为 API 层并使用 Cognito 用户池 作为身份验证服务的无服务器应用程序。可以有网络/移动用户使用该应用程序。每个经过身份验证的用户都应该能够将照片上传到 S3 存储桶。我正在使用 Dynamo DB 作为数据库。

实现具有以下要求的文件上传过程的最佳方法是什么,

  1. 每个经过 Cognito 身份验证的用户都应该能够上传/查看 s3 存储桶中的照片。
  2. 用户应该能够上传多张照片
  3. 每个文件上传都应该记录在数据库中。

我看到有一种使用 AWS 预签名 URL 上传文件的方法,但我可以使用这种方法上传多个文件吗?

由于我有 Cognito 身份验证,是否有直接的方式让经过身份验证的用户访问 S3 存储桶而不是预签名 URL?

【问题讨论】:

    标签: amazon-s3 amazon-cognito serverless-framework aws-appsync serverless-architecture


    【解决方案1】:

    如果您已经在使用 Cognito,则可以使用 Cognito 用户池保护您的 API Gateway 方法(特定的 REST API 方法)。

    这意味着您将有以下流程:

    应用程序 -> 带有 Cognito 授权标头的 HTTP 请求 -> API 网关 -> 带有授权设置的 API 网关方法 -> Lambda -> S3。

    API Gateway 的授权设置将负责保护端点。

    这是设置指南: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-integrate-with-cognito.html

    【讨论】:

      猜你喜欢
      • 2019-09-13
      • 2018-06-16
      • 2017-01-30
      • 2018-03-25
      • 2013-06-25
      • 2019-10-23
      • 2020-08-07
      • 2020-08-31
      • 2018-04-04
      相关资源
      最近更新 更多