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

Javascript 直接上传到s3/客户端文件。使用这种方法在s3存储桶中存储未使用的文件是否有问题?,javascript,node.js,amazon-web-services,amazon-s3,aws-sdk,Javascript,Node.js,Amazon Web Services,Amazon S3,Aws Sdk,我查阅了heroku(针对NodeJs应用程序)建议的本教程,该教程通过服务器对s3文件进行签名,然后直接从客户端处理上传: 我想知道s3存储桶中可能会存储许多未使用的文件 在heroku教程中,它们运行一个用户编辑场景。他们说: 当用户选择要上载的图像时,将上载到S3 按照所述流程自动和异步处理 在本文前面部分。然后,图像预览将使用 上传完成并成功后选择图像 然后,用户单击“提交”按钮,该按钮发布用户名, 上载到要创建的节点应用程序的图像的名称和URL 检查和/或存储。如果用户先前未

我查阅了heroku(针对NodeJs应用程序)建议的本教程,该教程通过服务器对s3文件进行签名,然后直接从客户端处理上传:

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

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

  • 当用户选择要上载的图像时,将上载到S3 按照所述流程自动和异步处理 在本文前面部分。然后,图像预览将使用 上传完成并成功后选择图像

  • 然后,用户单击“提交”按钮,该按钮发布用户名, 上载到要创建的节点应用程序的图像的名称和URL 检查和/或存储。如果用户先前未上载图像 默认的化身图像URL将被发布

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

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


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

  • 我将文件上传到S3

  • 然后,我承诺,一旦上传完成,我将提交用户的 配置文件信息/将S3URL发布到服务器

我有一个类似的问题,如果用户在promise调用之前离开,或者出现连接问题,会不会有存储未使用文件的问题


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

客户端正在进行上载的事实并不会使此问题比服务器端更严重。您仍然需要一种处理错误并保持与数据库同步的机制


如何处理这一问题取决于您的具体应用程序需要。@ceejayoz提到了一种拥有临时存储桶的方法。在上传完成之前,我宁愿不担心上传,而是使用Lambda作业来处理数据更新。如果您真的想做的话,也可以使用列表操作进行同步,但我认为这通常是不必要的ary。

我们将上传内容放在一个具有七天自动删除保留策略的存储桶中。成功提交后,我们将其移动到永久存储桶中。效果很好。