Безопасная загрузка файлов в AWS s3 с использованием Angular6 в качестве Frontend и Asp.Net Core 2.1 в качестве Backend - PullRequest
0 голосов
/ 27 сентября 2018

В последние пару дней я изо всех сил пытался загрузить файлы в AWS S3:

Подход 1. Использование aws-sdk, хотя подход довольно прост, чтобы сделать это из angular6, даже не переходя на бэкэнд,Но проблема заключается в том, что учетные данные выглядят следующим образом:

const bucket = new S3(
  {
    accessKeyId: 'YOUR-ACCESS-KEY-ID',
    secretAccessKey: 'YOUR-SECRET-ACCESS-KEY',
    region: 'us-east-1'
  }
);

из этого: https://grokonez.com/aws/angular-4-amazon-s3-example-how-to-upload-file-to-s3-bucket

Подход 2. Загрузка файлов в WebAPI с использованием Base64 и загрузка в aws из бэкэнда, этовполне достижимо.Но я заметил ухудшение качества изображения при передаче.Кроме того, загрузка видео - это кошмар

Подход 3. Загрузка файлов с использованием лямбда-функции AWS S3 с использованием Angular6 с NodeJS в качестве серверной части. У меня нет подсказки для NodeJS.

Подход 4. Создание WebAPI для получения файловпередается с потоковой передачей, а затем отправляется в AWS.Подход вполне приемлем, но то же самое не работает для меня.Я пробовал разные способы загрузки файла с помощью WebAPI из приложения Angular, но ни один из них не работает.Вот подход: https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-2.1 http://www.talkingdotnet.com/upload-file-angular-5-asp-net-core-2-1-web-api/#comment-74050

Размещенный файл никогда не попадает в бэкэнд.Я уже написал тот же вопрос о том, что я не получаю файл из бэкэнда:

Загрузка файла из Angular6 в Asp.Net Core WebAPI, индекс выхода которого выходит за пределы диапазона в Asp.Net API

Кроме того, в подходе 4 будет использовано двойное использование ресурса сервера, поэтому я очень не хочу этого делать.

Но я уверен, что это не должно быть так много утомления, какпохоже на то.Надеюсь, у вас, ребята, есть какое-то решение?

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