используя multer для отправки файлов в Digital Ocean Space - PullRequest
0 голосов
/ 11 ноября 2018

Попытка отправить локальные файлы в Digital Ocean Space

Мое тело запроса на пост:

[ 'http://localhost:8090/d/3534352009.png',
  'http://localhost:8090/d/3534352009-600x600.png' ]

Эти файлы расположены локально в том месте, где работает этот API /

В файле JS у меня есть config

// Change bucket property to your Space name
const upload = multer({
    storage: multerS3({
        s3: s3,
        bucket: 'xxxx',
        acl: 'public-read',
        key: function (request, file, cb) {
            console.log(file);
            cb(null, file.originalname);
        }
    })
}).array('upload', 2);

и маршрут для публикации

app.post('/upload', function (request, response, next) {
    upload(request, response, function (error) {
        if (error) {
            console.log(error);
            return response.redirect("/error");
        }
        console.log('File uploaded successfully.');
        response.redirect("/success");
    });
});

Не могу понять, как разместить из объекта эти два изображения в пространстве Digital Ocean

Существует множество учебных пособий о том, как пользователь браузера FORM может публиковать несколько изображений, но я получил файлы локально и хочу опубликовать их с помощью скрипта.

1 Ответ

0 голосов
/ 20 ноября 2018

Это можно сделать с помощью aws sdk putObject API. Это работает для меня.

const aws = require('aws-sdk');
var fs =  require('fs');

const spacesEndpoint = new aws.Endpoint('sgp1.digitaloceanspaces.com');
const spaces = new aws.S3({
endpoint: spacesEndpoint,
accessKeyId: 'spaces_key',
secretAccessKey: 'spaces_secret'
  });

  fs.readFile('file_path', function (err, data) {
  if (err) { throw err; }


  var params = {Bucket: 'bucket_name', Key:'file_name', Body: data };

  spaces.putObject(params, function(err, data) {

     if (err) {

         console.log(err)

     } else {

         console.log("Successfully uploaded data to DO speaces");

      }

     });

     });

## Включите этот код в API, если вы хотите отправить путь к файлу в качестве тела запроса

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