Я пытаюсь загрузить файл .txt через FTP, а затем назначить этот файл переменной, где я смогу позже отредактировать текст в коде.
Не знаете, как установить переменную, которая может использоваться вне блока кода FTP, когда она создается из createWriteStream в Node.js.
Как я могу передать это, txt в переменнуюftpItem
и затем получить доступ к этой функции вне функции FTP?
Ошибка, возвращаемая AWS Lambda, равна ftpItem is not defined
- В общем, я пытаюсь загрузить файл TXT через FTP.Поместите его в каталог / tmp / функции AWS Lambda, а затем откройте и отредактируйте этот текст позже в коде.
var fullPath = event.line_items[0].meta_data[2].value.tmp_name;
const extension = path.extname(fullPath);
const FileName = path.basename(fullPath, extension);
const FileNameWithExtension = path.basename(fullPath);
...
async function example() {
const client = new ftp.Client()
client.ftp.verbose = true
try {
await client.access({
host: process.env.FTP_HOST,
user: process.env.FTP_USERNAME,
password: process.env.FTP_PASSWORD,
})
console.log(await client.list())
await client.download(fs.createWriteStream('/tmp/' + FileNameWithExtension), FileNameWithExtension)
var ftpItem = FileNameWithExtension.Body.toString('ascii');
console.log(ftpItem);
}
catch(err) {
console.log(err)
}
client.close()
}
...
// Use the variable ftpItem outside of the FTP call
// Also tried the following with the same error above
await client.download(fs.createWriteStream('/tmp/' + FileNameWithExtension), FileNameWithExtension)
{
var ftpItem = download.Body.toString('ascii');
}