直接到s3 /客户端文件上传。使用这种方法是否存在将未使用的文件存储在s3存储桶中的问题?

问题描述:

我期待在本教程由Heroku的建议(为的NodeJS应用程序)用于通过服务器签署S3文件,然后直接从客户端处理上传:直接到s3 /客户端文件上传。使用这种方法是否存在将未使用的文件存储在s3存储桶中的问题?

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

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

在heroku教程中,它们贯穿用户编辑场景。他们陈述:

  • 当用户选择的图像被上传,上载至S3是 与过程自动地和异步处理此文章中描述 早。一旦上传完成并成功,图像预览将随着所选图像更新为 。

  • 然后,用户点击“提交”按钮,这讯息的用户名, 名和上载的图像到节点应用程序的URL是 检查和/或存储。如果之前没有用户上传图片 ,则会发布默认的头像图片网址。

那么,如果用户选择图像,然后点击到另一个页面没有完成并提交用户个人资料吗?

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


我“在我MEAN应用程序,使用类似的方法m式上提出:

  • 我把文件上传到S3

  • 然后,一个承诺,一旦。上传完成后,我将用户的 个人资料信息/张贴到服务器的s3 url。

我有一个类似的问题,如果用户在承诺调用之前离开或存在连接问题会怎么样 - 是否存在存储未使用文件的问题?

这是处理这种情况的典型方式,这只是风险的一部分?

+0

我们将上传内容放在一个存储区中,并使用七天的自动删除保留策略。成功提交后,我们将其移至永久存储桶。很好地工作。 – ceejayoz

上传发生在客户端的事实并不会使这个问题或多或少比服务器端更糟糕。您仍然需要一种处理错误并使其与数据库保持同步的机制。

你如何处理这取决于你的具体应用需求。 @ceejayoz提到了一种临时存储桶的方法。我更喜欢在完成之前不要担心上传,并使用Lambda作业处理数据更新。如果你真的想要,你也可以使用列表操作进行同步处理,但我认为这通常是不必要的。