我正在使用lambda nodejs将文件上传到ftp服务器。
上传文件的源代码:
const ftp = require('basic-ftp');
const fs = require('fs');
class FTPClient {
constructor(host = 'localhost', port = 21, username = 'anonymous', password = 'guest', secure = false) {
this.client = new ftp.Client();
this.settings = {
host: host,
port: port,
user: username,
password: password,
secure: secure
};
}
upload(sourcePath, remotePath) {
let self = this;
(async () => {
try {
let access = await self.client.access(self.settings);
let upload = await self.client.upload(fs.createReadStream(sourcePath), remotePath);
} catch(err) {
console.log(err);
}
self.client.close();
})();
}
close() {
this.client.close();
}
}
module.exports = FTPClient;
index.js文件:
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const ftp = require('./upload');
const request = require('request');
let doRequest = async (url) => {
return new Promise(function (resolve, reject) {
request(url, function (error, res, body) {
if (!error && res.statusCode == 200) {
resolve(body);
} else {
reject(error);
}
});
});
}
let createFile = async (data) => {
let fileName = 'fileName.csv';
const csvWriter = createCsvWriter({
path: '/tmp/fileName.csv',
header: [
{ id: 'date', title: 'Date' },
{ id: 'mac_address', title: 'MAC_Address' },
{ id: 'enter', title: 'Enter' }
]
});
await csvWriter.writeRecords(data);
const client = new ftp('ftphost', 21, 'ftp_username', 'ftp_password');
await client.upload('/tmp/fileName.csv', fileName);
}
exports.handler = async (event, s3FileStreamContent) => {
let dataExcel = [];
let url = 'http://example.com/apiUrl';//only for example
let res = await doRequest(url);
let data = JSON.parse(res).data;
dataExcel.push({
date: data.date,
mac_address: data.mac,
enter: data.enter
});
createFile(data);
};
运行后的日志:
回应:
零
请求ID:
“9c8e1701-ad54-42eb-8dc6-bbed77bc9b41”
函数日志:
开始请求id:9c8e 1701-ad54-42e b-8dc 6-bbed 77 BC 9 b 41版本:$最新
结束请求ID:9c8e1701-ad54-42eb-8dc6-bbed77bc9b41
报告请求 Id: 9c8e1701-ad54-42eb-8dc6-bbed77bc9b41 持续时间: 517.98 毫秒 计费持续时间: 600 毫秒 内存大小: 128 MB 最大使用内存: 93 MB
它不能上传文件到ftp服务器。请帮帮我。谢谢。
请提供你遇到的错误。可能性如下:
const handler = async (event) => {
}
module.exports = { handler }
. AWS lambda以aws handler函数开头,希望您已将其包含在您的aws lambda代码中……您如何触发代码。希望您为事件测试配置提供价值。
问题内容: 我试图一次将许多文件上传到我的CherryPy服务器。 我正在按照本教程在服务器端显示PHP代码。 JavaScript部分很简单。这是它的摘要: 我将本教程中描述的内容翻译成如下形式: 当服务器收到请求时,我可以看到 这就是我要上传的文件的长度,因此我假设整个文件已发送到服务器。 如何获取文件的内容? 问题答案: 至少看起来像下面这样。在Firefox和Chromium中进行了测试。
是否可以使用google drive api更改一个大文件,只上传更改的部分文件,而不是整个文件?我试图在API文档中找到关于它的信息,但只支持在连接重置后继续上传。它似乎是一个重要的特征。
问题内容: 我创建了一个从有权访问的FTP服务器下载文件的功能。如何将文件上传回FTP服务器? 以下是我使用的download_files方法: 问题答案: 使用Apache Commons Net库中的FTPClient类。 这是一个带有示例的代码段: 摘录自http://www.kodejava.org/examples/356.html
问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依
问题内容: 我遵循以下文档以将文件上传到Google云端硬盘:https : //developers.google.com/drive/android/files 现在,每次我要上传文件时,都会出现Google云端硬盘的弹出窗口,问我将其上传到哪里以及哪个名字。我不希望弹出窗口,我想直接上传文件。 有什么方法可以做到这一点?我找不到任何文档。我也发现了这一点:https : //develope
问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示