Я использую 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?
Я использую AWS S3 .NET SDK (Amazon.S3 + TransferUtility) для загрузки файлов из корзины S3. Большинство типов файлов загружаются правильно (.txt, .zip, .webm, .ogv), но .mp4 и .mp3 всегда терпят неудачу, за этим исключением: [b]System.IO.IOException: невозможно прочитать данные из транспортного соединения: Существующее соединение было принудительно закрыт удаленным хостом[/b] Однако: [list] [*]Если я переименую файл .mp4 в .ogv, загрузка будет работать. [*]Загрузка того же файла .mp4 через Cyberduck работает. [*]Java AWS SDK также без проблем загружает тот же файл. [*]Таким образом, объект действителен и общедоступный для загрузки — он просто не работает только в .NET для определенных расширений. [/list] [code]using System; using System.Threading.Tasks; using Amazon; using Amazon.Runtime; using Amazon.S3; using Amazon.S3.Transfer;
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}"); } } } [/code] [b]Что я пробовал[/b] [list] [*]Переименование .mp4 =.ogv = работает [*]Загрузка того же файла с помощью Cyberduck = работает [*]Загрузка с помощью AWS Java SDK → работает [*]Другие типы файлов (.txt, .zip, .ogv, .webm) = работают [*]В .NET не работают только .mp4 и .mp3: возможно, есть и другие форматы, которые не работают [/list] [b]Вопрос[/b] [b]Почему AWS S3 .NET SDK не может загрузить файлы .mp4 и .mp3 с ошибкой «соединение принудительно закрыто» и как это исправить это?[/b] Известна ли проблема, связанная с типами MIME, фрагментированной передачей, настройками HTTP/HTTPS или конфигурацией клиента S3 в .NET?