读写s3节点js

时间:2016-05-27 08:41:43

标签: javascript node.js amazon-s3 readfile writefile

我有问题,但我不知道如何解决它。 我从s3读取文件,然后将其保存到文件夹(下载)。之后,我读取了我保存在文件夹中的文件(我保存在下载中)并重新调整大小+将其保存在具有不同名称(调整大小)的其他文件夹中。 然后,我想再次读取这个文件,以便以新的大小再次上传它,但是当我尝试这样做时会抛出一个错误,这个目录中没有这样的文件,但当我在我的文件夹中检查它时。 我的猜测是在将图像写入新文件夹之前尝试阅读(已调整大小) 我该如何解决?

更新

如此依赖提交这就是我所做的,但它不能在fs.readFileAsync中打印出任何内容。 为什么?

var image = new ImageResize(__dirname +'/../downloads/'+ hash + '.png');
  image.smartResizeDown({
    width: 200,
    height: 200
  }).then(function () {
    image.stream(function (err, stdout, stderr) {
        var writeStream = fs.createWriteStream(__dirname +'/../resized/'+ hash + 'resize.png');
        stdout.pipe(writeStream);

}).then(function(){
  fs.readFileAsync('C:/Users/user/Desktop/cloud/new/resized/'+hash+'resize.png', function(error, buf){

    if(error)
      console.log(error);
    else
      console.log('yay');
});
});

});

1 个答案:

答案 0 :(得分:0)



var image = new ImageResize(__dirname +'/../downloads/'+ hash + '.png');

image.smartResizeDown({
    width: 200,
    height: 200
})
.then(function () {
    return new Promise(function(resolve, reject) {
        image.stream(function (err, stdout, stderr) {
            var writeStream = fs.createWriteStream(__dirname +'/../resized/'+ hash + 'resize.png');
            stdout.pipe(writeStream);

            resolve();
        })
    });
})
.then(function(){
    fs.readFileAsync('C:/Users/user/Desktop/cloud/new/resized/'+hash+'resize.png', function(error, buf) {
        if(error)
          console.log(error);
        else
          console.log('yay');
    });
    return null;
});




假设bluebird对象在Promise名为变量。