Как получить локальный файл при загрузке в amazon aws s3? - PullRequest
0 голосов
/ 07 марта 2019

Это решение, которое я нашел в Интернете: [https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html]

function addPhoto(albumName) {
  var files = document.getElementById('photoupload').files;
  if (!files.length) {
    return console.log('Please choose a file to upload first.');
  }
  var file = files[0];
  var fileName = file.name;
  var albumPhotosKey = encodeURIComponent(albumName) + '//';

  var photoKey = albumPhotosKey + fileName;
  s3.upload({
    Key: photoKey,
    Body: file,
    ACL: 'public-read'
  }, function(err, data) {
    if (err) {
      return console.log('There was an error uploading your photo: ', err.message);
    }
    console.log('Successfully uploaded photo.');
    viewAlbum(albumName);
  });
}

Однако в моей нынешней среде нет такого понятия, как «документ». Я действительно не знаю, как работает «документ». Могу ли я включить «документ» в мою текущую среду? Или я могу использовать что-то еще, чтобы получить локальный файл [изображение]? Большое спасибо!

s3.upload: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Вы должны указать, какова ваша среда.document объект имеет смысл только в HTML, веб-странице, запущенной в браузере.Если вы работаете не в браузере, а в автономном режиме, вы, вероятно, используете Node.js.

Поскольку документация говорит, что параметр Body может иметь тип Buffer, Typed Array, Blob,String или ReadableStream.

Таким образом, простая загрузка локального файла в Node.js может выглядеть следующим образом:

var fs = require('fs');
var stream = fs.createReadStream('/my/file');

s3.upload({
   Bucket: 'mybucket',
   Key: 'myfile'
   Body: stream
}, function(err, data) {
   if (err) return console.log('Error by uploading.', err.message);
   console.log('Successfully uploaded.');
});
0 голосов
/ 07 марта 2019

Объектная модель документа (DOM) - это межплатформенный и независимый от языка интерфейс прикладного программирования, который обрабатывает документ HTML, XHTML или XML как древовидную структуру, в которой каждый узел является объектом, представляющим часть документа.

DOM представляет документ с логическим деревом. Каждая ветвь дерева заканчивается узлом, и каждый узел содержит объекты. Методы DOM обеспечивают программный доступ к дереву; с их помощью можно изменить структуру, стиль или содержание документа. К узлам могут быть прикреплены обработчики событий. После запуска события выполняются обработчики событий

ИСТОЧНИК: https://en.wikipedia.org/wiki/Document_Object_Model

Это просто корневой контекст, используемый для доступа к DOM после загрузки страницы в браузер.

Пример просмотра события загрузки модели документа:

document.addEventListener("DOMContentLoaded", function(event) {
    // - Code to execute when all DOM content is loaded. 
    alert("LOADED!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...