使用NodeJS重命名AWS Lambda中的文件

时间:2019-07-15 13:10:39

标签: javascript node.js amazon-web-services aws-lambda fs

我正在尝试重命名当前存储在AWS Lambda / tmp /目录中的文件。

我已经尝试了下面的代码,但是它指出找不到文件。即使将tmp列为路径

//Rename file
        fs.renameSync('/tmp/' + newFilename, '/tmp/' + oldFilename);
        console.log('File renamed from ' + oldFilename + ' to ' + newFilename);

我以异步方式运行main函数,而其他fs函数看起来像

const unlink2 = util.promisify(fs.unlink);
        await unlink2('/tmp/' + newFilename)
            .then(() => {
                console.log('File has been deleted from /tmp/');
            })
            .catch((err) => {
                console.log('Error', err);
            });

所以不确定在这里按哪种方式前进。谁能提供正确的代码/程序帮助?

2 个答案:

答案 0 :(得分:0)

检查official documentation

旧路径应该是第一个,新路径是第二个参数。

答案 1 :(得分:0)

.then().catch()不带await一起使用,因此可以是:

unlink2(...).then(...).catch(...)

try {
  await unlink2(...)
} catch (err) {
  console.error(err)
}
doNextOperation()

在示例代码中,您编写了重命名(newPath,oldPath),这应该是相反的,这可能就是为什么找不到文件的原因:

fs.renameSync(oldPath, newPath)

https://nodejs.org/api/fs.html#fs_fs_renamesync_oldpath_newpath