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

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

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

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

在heroku教程中,他们运行一个用户编辑场景。 他们指出:

  • 当用户select要上传的图像时,上传到S3的处理将自动与本文前面介绍的过程asynchronous处理。 一旦上传完成并成功,图像预览会随着所选图像而更新。

  • 然后用户点击“提交”button,该button将上传图像的用户名,名称和URL发布到要检查和/或存储的节点应用程序。 如果之前没有用户上传图片,则会发布默认的头像图片url。

那么,如果用户select图像,然后点击另一个页面而没有完成并提交用户configuration文件信息呢?

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


我在我的平均应用程序中使用类似的方法,在提交:

  • 我上传文件到S3。

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

我有一个类似的担心,如果用户离开之前承诺调用或有连接问题 – 是否有存储未使用的文件的问题?

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

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

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