Я использую aws sdk javascript для загрузки файла в amazon s3.abort/stop amazon aws s3 upload, aws sdk javascript
код:
AWS.config.update({
accessKeyId : 'access-key',
secretAccessKey : 'secret-key'
});
AWS.config.region = 'region';
var bucket = new AWS.S3({params: {Bucket: 'bucket-name'}});
//var fileChooser = document.getElementById('file');
var files = event.target.files;
$.each(files, function(i, file){
//console.log(file.name);
if (file) {
var params = {Key: file.name, ContentType: file.type, Body: file};
bucket.upload(params).on('httpUploadProgress', function(evt) {
console.log("Uploaded :: " + parseInt((evt.loaded * 100)/evt.total)+'%');
if("Uploaded :: " + parseInt((evt.loaded * 100)/evt.total)+'%' == 'Uploaded :: 20%'){
console.log("abort upload");
bucket.abort.bind(bucket);
}
}).send(function(err, data) {
if(err != "null"){
console.log(data);
//alert("Upload Success \nETag:"+ data.ETag + "\nLocation:"+ data.Location);
var filename = data.Location.substr(data.Location.lastIndexOf("/")+1, data.Location.length-1);
console.log(filename);
fileData = filename;
filename = filename.replace("%20"," ");
$('.aws-file-content').append('<i id="delete-aws-file'+i+'" class="delete-aws-file icon-remove-sign" data-filename=' + fileData +'></i><a href="'+data.Location+'" target=_blank >'+filename+'</a><br>');
}else{
console.log(err);
}
});
}
});
файл загрузки успешно, я хочу, чтобы прервать файл/остановка загрузки используется:
bucket.abort();// not working
bucket.abort.bind(bucket); //not working.
Спасибо за помощь.
Переключение на метод 'putObject' устраняет многопользовательскую магию загрузки, которая' s3.upload' под капотом. Любые загрузки, которые не выполняются, должны будут перезапускаться с самого начала с помощью 'putObject', с' s3.upload' он использует 'AWS.S3.MangaedUpload' под капотом и автоматически разбивает ваш файл и отправляет он по частям, позволяющий повторить попытку в середине файла. – AJB