Javascript 直接上传到s3/客户端文件。使用这种方法在s3存储桶中存储未使用的文件是否有问题?
我查阅了heroku(针对NodeJs应用程序)建议的本教程,该教程通过服务器对s3文件进行签名,然后直接从客户端处理上传: 我想知道s3存储桶中可能会存储许多未使用的文件 在heroku教程中,它们运行一个用户编辑场景。他们说: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 检查和/或存储。如果用户先前未
- 当用户选择要上载的图像时,将上载到S3 按照所述流程自动和异步处理 在本文前面部分。然后,图像预览将使用 上传完成并成功后选择图像
- 然后,用户单击“提交”按钮,该按钮发布用户名, 上载到要创建的节点应用程序的图像的名称和URL 检查和/或存储。如果用户先前未上载图像 默认的化身图像URL将被发布
我在MEAN应用程序中使用了类似的方法,在提交时:
- 我将文件上传到S3
- 然后,我承诺,一旦上传完成,我将提交用户的 配置文件信息/将S3URL发布到服务器
这是处理此问题的典型方法吗?这只是风险的一部分?客户端正在进行上载的事实并不会使此问题比服务器端更严重。您仍然需要一种处理错误并保持与数据库同步的机制
如何处理这一问题取决于您的具体应用程序需要。@ceejayoz提到了一种拥有临时存储桶的方法。在上传完成之前,我宁愿不担心上传,而是使用Lambda作业来处理数据更新。如果您真的想做的话,也可以使用列表操作进行同步,但我认为这通常是不必要的ary。我们将上传内容放在一个具有七天自动删除保留策略的存储桶中。成功提交后,我们将其移动到永久存储桶中。效果很好。