我有问题,但我不知道如何解决它。 我从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');
});
});
});
答案 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
名为变量。