Tus.io WebException (ошибка сервера 460) во время обычной загрузки

Я использую Tus.io (возобновляемую библиотеку загрузки файлов) .Net Client для загрузки файлов на веб-сервер.

Вот фрагмент кода:

 Dim testfile = My.Computer.FileSystem.GetFileInfo("..\..\test.pptx")

    Dim tc As New TusClient.TusClient()
    AddHandler tc.Uploading, Sub(bytesTransferred As Integer, bytesTotal As Integer)
                                 Dim perc As Decimal = bytesTransferred / bytesTotal * 100.0
                                 Console.WriteLine("Up {0:0.00}% {1} of {2}", perc, bytesTransferred, bytesTotal)
                             End Sub

    Dim fileURL = tc.Create(ServerURL, testfile)

    tc.Upload(fileURL, testfile)

Функции загрузки работают хорошо для небольших файлов, например, 500 КБ, но не для файлов размером 3 МБ или более. Выдает исключение после передачи 100% данных (согласно%, указанному в Uploading Event).

Исключение: WebException

Сообщение: удаленный сервер возвратил ошибку: (460) Неизвестно.

Содержание ответа: "Заголовок Upload-Checksum не совпадает с контрольной суммой файла"

Статус: ProtocolError {7}

Дайте мне знать, если какая-либо необходимая информация отсутствует здесь. Любое решение или быстрый обходной путь будет высоко оценен. Благодарю.

PS. Я не смог добавить тег Tus.io из-за ограниченных прав.

1 ответ

Решение

Клиентская библиотека tus.io .NET включает заголовок "контрольной суммы", который заставляет клиента выдавать эту ошибку. Самое простое решение сейчас - удалить или закомментировать следующую строку, перекомпилировать, и вам будет хорошо.

TusClient.cs
line 150: request.AddHeader("Upload-Checksum", "sha1 " + Convert.ToBase64String(sha1hash));
Другие вопросы по тегам