Загрузка AWS S3 .NET SDK не удалась для файлов .mp4 и .mp3 с IOException: «Существующее соединение было принудительно заC#

Место общения программистов C#
Ответить
Anonymous
 Загрузка AWS S3 .NET SDK не удалась для файлов .mp4 и .mp3 с IOException: «Существующее соединение было принудительно за

Сообщение Anonymous »

Я использую AWS S3 .NET SDK (Amazon.S3 + TransferUtility) для загрузки файлов из корзины S3.
Большинство типов файлов загружаются правильно (.txt, .zip, .webm, .ogv), но .mp4 и .mp3 всегда терпят неудачу, за этим исключением:
System.IO.IOException: невозможно прочитать данные из транспортного соединения:
Существующее соединение было принудительно закрыт удаленным хостом

Однако:
  • Если я переименую файл .mp4 в .ogv, загрузка будет работать.
  • Загрузка того же файла .mp4 через Cyberduck работает.
  • Java AWS SDK также без проблем загружает тот же файл.
  • Таким образом, объект действителен и общедоступный для загрузки — он просто не работает
    только в .NET для определенных расширений.

Код: Выделить всё

using System;
using System.Threading.Tasks;
using Amazon;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Transfer;

class Program
{
static async Task Main(string[] args)
{
string accessKey = "YOUR_ACCESS_KEY";
string secretKey = "YOUR_SECRET_KEY";
string bucketName = "my-bucket-name";
string keyName = "folder/file.mp4";
string downloadPath = @"C:\Downloads\file.mp4";

var credentials = new BasicAWSCredentials(accessKey, secretKey);
var config = new AmazonS3Config
{
RegionEndpoint = RegionEndpoint.APSouth1
};

using var s3Client = new AmazonS3Client(credentials, config);
var transferUtility = new TransferUtility(s3Client);

try
{
await transferUtility.DownloadAsync(downloadPath, bucketName, keyName);
Console.WriteLine("Download complete!");
}
catch (Exception ex)
{
Console.WriteLine($"Download failed: {ex.Message}");
}
}
}
Что я пробовал
  • Переименование .mp4 =.ogv = работает
  • Загрузка того же файла с помощью Cyberduck = работает
  • Загрузка с помощью AWS Java SDK → работает
  • Другие типы файлов (.txt, .zip, .ogv, .webm) = работают
  • В .NET не работают только .mp4 и .mp3: возможно, есть и другие форматы, которые не работают
Вопрос
Почему AWS S3 .NET SDK не может загрузить файлы .mp4 и .mp3 с ошибкой «соединение принудительно закрыто» и как это исправить это?
Известна ли проблема, связанная с типами MIME, фрагментированной передачей, настройками HTTP/HTTPS или конфигурацией клиента S3 в .NET?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ion-an-exi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»