首页 > 解决方案 > 将 AWS S3 用于后端应用程序的最佳方式

问题描述

为了学习如何将后端连接到 AWS,我正在编写一个简单的记事本应用程序。在前端,它使用 Editor.js 作为传统 WYSIWYG 的替代方案。我想知道如何最好地同步用户上传的图像。

要从磁盘上传图像,我使用以下插件:https ://github.com/editor-js/image

在工具的配置中,我给了服务器的api端点来上传图片。作为响应,服务器必须将 url 发送到保存的文件。我的服务器将数据保存到 s3 并返回链接。

但是,如果有人一遍又一遍地添加和删除同一个文件怎么办?每次,都会有一个新的请求到 aws。

这是问题的主要部分,我应该在实践中以某种方式优化它吗?我正在考虑先将文件临时保存在我的服务器上,并且不时与 aws 进行同步。在实践中如何做到这一点?如果您能与我分享我可能错过的任何提示或资源,我将不胜感激。

我很抱歉我的英语可能出现错误,我会尽力而为。

谢谢你的帮助!

标签: amazon-web-servicesamazon-s3

解决方案


我认为您应该在它们可用时立即将它们上传到 S3 。通过这种方式,您可以确保它们的可用性和对实例故障的抵抗力。S3 跨多个可用区 (AZ) 存储文件,确保可靠的长期存储。另一方面,实例仅在一个 AZ 内运行,如果它发生问题,您在实例上的所有数据都会丢失。因此,如果您等待上传,您可能会丢失整批图像。

除此之外,S3 的容量几乎是无限的,因此您不会面临任何存储短缺的风险。当您在实例上批量保存它们时,根据图像大小,可能会出现空间不足的情况。

最后,在 AWS 上开发应用程序的良好做法是使它们成为无状态的。这意味着您的实例应随时被视为一次性且可互换的。这是通过不在实例上存储任何用户数据来实现的。这使您能够自动扩展您的应用程序并使其具有容错性。


推荐阅读