簡體   English   中英

使用aws-sdk和Node / Express上傳到S3

[英]Upload to S3 using aws-sdk and Node/Express

我一直遵循本指南,使用aws-sdk和Node / Express簡單文件上傳到S3,以嘗試讓用戶通過S3上傳圖像。 由於某種原因,我無法使其正常工作。 我該如何修復我的代碼以更正錯誤?

我得到的錯誤是:TypeError:無法讀取未定義的屬性“ 0”。

    var aws             = require('aws-sdk');
    var multerS3        = require('multer-s3');
    var  multer          = require("multer");

    (Not real codes)
    aws.config.update({
        secretAccessKey: 'QWUdawup',
        accessKeyId: 'GHQWD1A',
        region: 'us-east-2'
    });

       var s3 = new aws.S3();

    var upload = multer({
        storage: multerS3({
            s3: s3,
            bucket: 'medstayfiles',
            key: function (req, file, cb) {
                console.log(file);
                cb(null, file.originalname); //use Date.now() for unique file keys
            }
        })
    });



router.post("/", middleware.isLoggedIn, upload.array('image', 1), function(req, res,next){

        var filepath = undefined;
        if(req.files[0]) {
            filepath = req.files[0].key; // 'uploads/xxxxx.extension'
        }

        var newRentals = {filepath: filepath}

        Rentals.create(newRentals, function(err, newlyCreated){
            if(err){
                console.log(err);
            } else {
                //redirect back to rentals page
                res.redirect("/rentals");
            }
        });
    });

您沒有提到錯誤的出現位置,但是根據您的代碼,似乎req.files是未定義的。 您可能需要添加適當的中間件來處理文件上傳。

確實,但是,如果您要接受來自Web用戶的帖子,則只應使用預先簽名的URL或上傳表單將它們直接上傳到S3。 節省麻煩和帶寬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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