簡體   English   中英

使用node.js將文件上傳到S3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM