Pra*_*mar 2 javascript amazon-s3 aws-sdk aws-sdk-js
我正在尝试使用 AWS S3 SDK JavaScript 获取 httpUploadProgress。使用这一行,我可以看到上传进度的预期结果,但是如何使用 Promise() 获得相同的结果,我在浏览器中使用它作为外部 JS 资源。
工作示例:
function uploadFile(){
var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
var fileChooser = document.getElementById('file');
var file = fileChooser.files[0];
if (file) {
console.log();
var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
var params = {Key: file.name, ContentType: file.type, Body: file};
s3.upload(params,opts).on('httpUploadProgress', function(evt) {
console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
}).send(function(err, data) {
console.log(err);
alert("File uploaded successfully.");
});
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我想要的承诺也是如此。
function uploadFile(){
var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
var fileChooser = document.getElementById('file');
var file = fileChooser.files[0];
if (file) {
console.log();
var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
var params = {Key: file.name, ContentType: file.type, Body: file};
var promise = s3.upload(params,opts).promise();
promise()
.then(function(data){}, function(error){})
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我有同样的问题。我不确定你的实现情况,但我认为这就是你可能正在寻找的......
function async uploadFile(){
var bucket = new AWS.S3({params: {Bucket: BUCKET_NAME}});
var fileChooser = document.getElementById('file');
var file = fileChooser.files[0];
if (file) {
console.log();
var opts = {queueSize: 1, partSize: 1024 * 1024 * 5};
var params = {Key: file.name, ContentType: file.type, Body: file};
var upload = s3.upload(params,opts)
.on('httpUploadProgress', function(evt) {
console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total)+'%');
})
.promise();
await upload.then(function(err, data) {
console.log(err);
alert("File uploaded successfully.");
});
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4284 次 |
| 最近记录: |