直接向s3 / client上传文件.使用这种方法在s3存储桶中存储未使用的文件是否存在问题?

Direct to s3 / client file uploads. Is there a concern for storing unused files in your s3 bucket with this approach?

本文关键字:文件 存储 s3 未使用 问题 存在 是否 方法 client      更新时间:2023-09-26

我正在查看heroku(用于NodeJs应用程序)建议的通过服务器签署s3文件的教程,然后直接从客户端处理上传:

https://devcenter.heroku.com/articles/s3-upload-node

我想知道在s3存储桶中存储许多未使用的文件的可能性。

在heroku教程中,它们运行了一个用户编辑场景。它们声明:

  • 当用户选择要上传的图片时,上传到S3为使用所描述的流程自动异步处理在本文前面。图像预览然后使用上传完成并成功后选中的图片。

  • 用户点击"提交"按钮,发布用户名,上传到Node应用程序的图像的名称和URL检查和/或存储。如果用户之前没有上传图像使用默认的头像URL代替。

那么,如果用户选择了图像,然后单击到另一个页面,而没有完成并提交用户配置文件信息,该怎么办?

这只是一个浪费的文件存储在你的s3桶?


我在我的MEAN应用程序中使用了类似的方法,在提交时:

  • 我上传文件到S3。

  • 然后,有一个承诺,一旦上传完成,我提交用户的

我也有类似的问题,如果用户在promise调用之前离开,或者存在连接问题——是否存在存储未使用文件的问题?

这是典型的处理方式吗?这只是风险的一部分吗?

上载发生在客户端这一事实并不会使这个问题比服务器端更严重。你仍然需要一种机制来处理错误,并保持数据与数据库同步。

如何处理这个取决于您的特定应用程序需求。@ceejayoz提到了一种拥有临时存储桶的方法。在上传完成之前,我宁愿不担心上载,用Lambda作业处理数据更新。如果你真的想的话,你也可以有一个与列表操作同步的过程,但我认为这通常是不必要的。