中止对s3 javascript API的上载

中止对s3 javascript API的上载,javascript,amazon-s3,aws-sdk,Javascript,Amazon S3,Aws Sdk,我正在使用Javascript API将文档上传到AmazonS3,我想处理上传到S3被中止的情况。可能是用户关闭浏览器选项卡或刷新页面(主要是关闭浏览器选项卡) 当用户中止s3.upload时,是否有一种方法可以处理向服务器端代码发送请求的情况 我有下面的代码 let s3Upload = s3.upload(params).on('httpUploadProgress', function(evt) { jQuery('.export-progress').html("P

我正在使用Javascript API将文档上传到AmazonS3,我想处理上传到S3被中止的情况。可能是用户关闭浏览器选项卡或刷新页面(主要是关闭浏览器选项卡)

当用户中止s3.upload时,是否有一种方法可以处理向服务器端代码发送请求的情况

我有下面的代码

    let s3Upload = s3.upload(params).on('httpUploadProgress', function(evt) {
      jQuery('.export-progress').html("Progress: "+ evt.loaded + "/" + evt.total);
    }).promise();

    s3Upload.then(function(s3data){
    //success processing
    }, function(err){
    // any error
    });
这方面的任何帮助都会非常好。非常感谢

当用户中止s3.upload时,是否有一种方法可以处理向服务器端代码发送请求的情况

不是真的。如果用户关闭选项卡,Beacon API可用于发出请求,但在电池耗尽、浏览器崩溃、计算机重新启动等情况下,该怎么办

我通常通过以下两种方式之一处理此问题:

  • 添加对象时,可以关联数据
  • 上传成功后(在客户端),向您的API发回帖子,通知它成功

请注意,这两种方法都可能失败,因此您应该有一个cron作业或一些定期清理bucket中意外项目的东西,如果适合您的用例的话。

感谢@Brad的回复。我已经收到了成功通知,但我不确定部分上传的文件会发生什么情况,因为为了测试我所做的是,我上传了一个大文件,我可以在浏览器控制台中看到上传的进度。但随后我关闭了浏览器,在我的bucket中没有看到文件。@opensource developer部分上传的文件被放弃。如果您使用的是多部件,那就有点不同了。()您确实需要考虑文件成功上传的情况,但是成功通知您没有发生。谢谢您的回复,我会把答案标记为接受。我还有一个问题,你知道我们是否因为被遗弃而被起诉uploads@opensource-开发者我不是100%确定,但我认为你不为存储付费,但你为带宽付费,我认为你为不完整的多部分上传的存储付费。谢谢@Brad的回复。这是非常有用的信息