Итак, я пишу приложение для миграции, чтобы взять некоторые данные из нашего локального хранилища и загрузить их в Amazon.Все работает нормально, за исключением случаев, когда я попадаю в файлы размером более 15 мегабайт (мегабайт, да, НЕ Гигантские), приложение зависает.
Это на C #, довольно просто.
var transferRequest = new TransferUtilityUploadRequest
{
Key = firstKey,
FilePath = fileName,
BucketName = ContentBucket,
Timeout = 3600000,
ContentType = GetContentTypeForFileExtension(fileName)
};
transferRequest.UploadProgressEvent += DisplayFileProgress;
transferUtil.Upload(transferRequest);
Как я уже сказал, отлично работает с файлами 15 мегабайт или меньше ... но на больших, он просто останавливается и навсегда остается в команде «Загрузить».15 мегабайт занимает примерно 40 секунд, поэтому я ожидал, что 30-мегабайтный тестовый файл займет, может быть, 2 минуты ... но спустя 10 минут, без любви.
Любой совет будет оценен, как, к сожалению, я будуработа с большим количеством файлов размером более 50 мегабайт.
Обратите внимание, что если я работаю в AWS Explorer в Visual Studio .net, я могу вручную загружать файлы размером более 50 мегабайт без каких-либо проблем и относительно быстро..
Так что это "интересно" ... При дальнейшем рассмотрении мои 50-мегабайтные файлы загружаются просто отлично.Это код, который я прикрепил к UploadProgressEvent, который на самом деле заставляет вещи зависать, потому что, если я закомментирую это, тогда загрузка файлов размером 50 мегабайт без проблем.
Если я оставлю этот код, 15-мегабайтные файлы будут отображаться на индикаторе выполнения.Но все, что больше 15 мег, фактически приводит к зависанию всего приложения.Может кто-нибудь сказать мне, что может быть проблема с кодом, который обрабатывает обновление индикатора выполнения?
private void DisplayFileProgress(object sender, UploadProgressArgs args)
{
pbFileProgress.Invoke((MethodInvoker)delegate {
pbFileProgress.Value = args.PercentDone;
pbFileProgress.Refresh(); });
}
И я просто устанавливаю "transferRequest.UploadProgressEvent += DisplayFileProgress
".Как я уже сказал, странно то, что это прекрасно работает для небольших файлов, но блокирует все для больших.