![](/img/trans.png)
[英]AWS Lambda Consumes time when uploading files to S3 using node.js
[英]Uploading files to S3 using node.js
我正在創建一個門戶,用戶可以在其中選擇單個文件並將其從PC上載到AWS上的S3。
以下是我的server.js代碼:
app.post('/ submit_doc',function(req,res){
var FileName = req.body.fileName,
Filedescription = req.body.filediscrip,
InputFileName = req.body.inputfile;
AWS.config.region = 'eu-west-1';
var fileStream = fs.createReadStream(FileName);
fileStream.on('error', function (err) {
if (err){
console.log("Error reading file: ", err);
res.send(500);
}
else{
fileStream.on('open', function () {
var s3 = new AWS.S3();
s3.putObject({
Bucket: 'exampleassetcare.com',
Key: 'reports/'+FileName,
Body: fileStream
}, function (err) {
if (err) {
console.log("Error uploading data: ", err);
res.send(500);
}
});
});
我收到錯誤:沒有這樣的文件或目錄。
有人可以幫忙嗎?
如果我對您的理解正確,那么您發布的這段代碼正在服務器上運行。 但是輸入是由客戶端提供的,是嗎? 如果是這樣,您的服務器將根據客戶端給您的文件路徑嘗試在本地查找文件...因此該文件將不存在...
如果我是惡意用戶,並且我告訴您的服務器上傳文件路徑/etc/passwd
,則您的服務器將運行並公開哈希密碼(假設它是Linux系統,並假定具有適當的權限,等等。。。)你有主意)。
更改為
var FileName = req.body.fileName,
Filedescription = req.body.filediscrip,
InputFileName = req.body.inputfile;
AWS.config.region = 'eu-west-1';
console.log(FileName)
var fileStream = fs.createReadStream(FileName);
並檢查文件是否存在,文件路徑看起來有問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.