nodejs загружает файлы в s2 aws amazon - PullRequest
0 голосов
/ 02 марта 2019

Это мой текущий код.Это не работает.Я публикую изображение в форме данных.

Мои вопросы:

  1. Как мне посмотреть данные формы в файле node.js (попробуйте войти в req.body, и это пустой объект)
  2. Что означает "demo.jpg" в коде?

NODEJS

var aws = require('aws-sdk');
const express = require('express');
const router = express.Router();
aws.config.update({
    "accessKeyId": "<MY_KEY>",               
    "secretAccessKey": "<MY_SECRET>"
});




router.post('/', (req, res, next) => {
    console.log(res.body)
    var s3 = new aws.S3();

    var params = {
        Bucket: "passwordapp",
        Key: 'aaaaaa',
        Expires: 60,
        ContentType: 'jpg'
    };

    s3.getSignedUrl('demo.jpg', params, function(err, data) {
        //console.log("err",err);

        if (err) {
            res.json(err)
        } else {
            res.json(data)
        }
    });
});


  module.exports = router;

enter image description here

1 Ответ

0 голосов
/ 03 марта 2019

Хорошо, вот решение:

https://stackoverflow.com/a/54402849/1230198

используйте multer

это мой РАБОЧИЙ код:

const express = require('express');
const router = express.Router();

const AWS = require('aws-sdk');
const multer = require('multer');
const storage = multer.memoryStorage()
const upload = multer({storage: storage});

const s3Client = new AWS.S3({
    "accessKeyId": "<KEY>",               
    "secretAccessKey": "<SECRET>"
});

const uploadParams = {
         Bucket: 'passwordapp', 
         Key: '', // pass key
         Body: null, // pass file body
};



router.post('/', upload.single("image"),(req, res, next) => {

    const params = uploadParams;

    uploadParams.Key = req.file.originalname;
    uploadParams.Body = req.file.buffer;
    s3Client.upload(params, (err, data) => {
        if (err) {
            res.status(500).json({error:"Error -> " + err});
        }
        res.json({message: 'File uploaded successfully','filename': 
        req.file.originalname, 'location': data.Location});
    });




});


  module.exports = router;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...