Reactjs AmazonS3用于Restful API的媒体存储

Reactjs AmazonS3用于Restful API的媒体存储,reactjs,amazon-web-services,spring-boot,amazon-s3,amazon-ec2,Reactjs,Amazon Web Services,Spring Boot,Amazon S3,Amazon Ec2,我有一个REST API,它支持一个多用户React应用程序,我已经在EC2实例上运行了一段时间,我正在上传照片/PDF,这些照片/PDF将附加到特定用户。我已经能够通过使用EFS进行测试来实现这一点,我已经将EFS配置到了与API相同的EC2实例中,但我希望转向S3 当我使用EFS进行测试时,我会通过REST API发送所有信息,用户会进行POST,然后API会将文件存储在EFS中,以及文件在我的数据库中存储位置的元数据,然后,为了检索数据,用户将访问RESTAPI,服务器将根据数据库中的元数

我有一个REST API,它支持一个多用户React应用程序,我已经在EC2实例上运行了一段时间,我正在上传照片/PDF,这些照片/PDF将附加到特定用户。我已经能够通过使用EFS进行测试来实现这一点,我已经将EFS配置到了与API相同的EC2实例中,但我希望转向S3

当我使用EFS进行测试时,我会通过REST API发送所有信息,用户会进行POST,然后API会将文件存储在EFS中,以及文件在我的数据库中存储位置的元数据,然后,为了检索数据,用户将访问RESTAPI,服务器将根据数据库中的元数据从EFS获取数据

我想知道S3的常用用例是什么?如果我想确保用户只能访问他们应该访问的PDF/图像,那么我是否仍然必须通过REST API发送所有内容,或者我是否有办法确保他们的身份并直接从前端的S3请求资源,只允许我的API返回文件的S3 URL列表


我想到的特定用例是,让用户能够上传个人资料图片,然后当用户按姓名搜索另一个用户时,在用户查询中返回的用户的所有个人资料图片都能够显示在结果列表中。

据我所知,没有“正常”处理这种特殊情况的方法——根据您的需要,这两种方法都是有意义的

以下是一些选项:

选择1 通过使用您的用户可以使用的资源,可以安全地允许用户直接从S3访问资源

选择2 如果您希望图片是公共的,您可以配置一个,并在web应用程序中简单地使用这些公共URL

选择3
从S3存储桶中使用。

据我所知,没有“正常”的方法来处理这种特殊情况-根据您的需要,这两种方法都是有意义的

以下是一些选项:

选择1 通过使用您的用户可以使用的资源,可以安全地允许用户直接从S3访问资源

选择2 如果您希望图片是公共的,您可以配置一个,并在web应用程序中简单地使用这些公共URL

选择3 从S3存储桶中使用