Итак, я пишу приложение для переноса, чтобы взять некоторые данные из нашего локального хранилища и загрузить его в Amazon. Все работает нормально, за исключением случаев, когда я попадаю в файлы размером более 15 мегабайт (мега, да, NOT Gigs), приложение замораживается.
Это на С#, довольно просто.
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
". Как я уже сказал, что странно, что это работает отлично для небольших файлов, но блокирует все для более крупных.