Мы загружаем изображения из .net core web api в Amazon Web Services (AWS), используя корзину S3. И изображение, которое мы получаем в теле запроса в строковом формате Base64 в контроллере веб-API.
Все это работает хорошо, однако у нас возникают проблемы с производительностью при загрузке изображения. Поскольку загрузка занимает много времени.
Что мы делаем, когда получаем строку Base64, мы конвертируем ее в байтовый массив и передаем байтовый массив в aws. Мы получаем как минимум 10 изображений в теле запроса.
В основном эти изображения отправляются через мобильное приложение, созданное с использованием ионных / угловых js.
Мы пытались напрямую отправить байтовый массив из пользовательского интерфейса ввеб-API, но все же это занимает то же время. Наряду с загрузкой изображений мы также отправляем данные формы.
Поскольку эти изображения имеют размер 6/7 МБ на изображение.
Ниже приведен код для того же.
public class SafetyController : ControllerBase
{
[HttpPost]
public IActionResult Save([FromBody] SafetyModel safetyModel)
{
try
{
SafetyBL safetybl = new SafetyBL();
safetybl.Save();
}
catch (Exception ex)
{
throw ex;
}
}
}
public class SafetyModel
{
public int Id { get; set; }
public string SafetyName { get; set; }
public string SafetyDescription { get; set; }
public string Location { get; set; }
public List<Photo> Photos { get; set; }
}
public class Photo
{
public string Base64{ get; set; }
}
public class Convert()
{
Public byte[] ConvertToByteArray(string base64)
{
return Convert.FromBase64String(base64);
}
}