HttpRequestException при выполнении BlobClient.UploadAsync - PullRequest
0 голосов
/ 11 января 2020

У меня есть следующий код для загрузки файлов в мое Azure хранилище:

Считайте поток файлов, как показано ниже:

   FileStream fileStream = File.OpenRead(filePath);

и перейдите к функции =>

 public async Task<Response<BlobContentInfo>> UploadBlob(string containerName, string blobName, Stream stream, string contentType,
            IDictionary<string, string> metadata = null)
        {
            IDictionary<string, string> metadataEncoded = new Dictionary<string, string>();
            if (metadata != null)
            {
                foreach (KeyValuePair<string, string> keyValuePair in metadata)
                {
                    string encodedValue = TextUtilities.Base64Encode(keyValuePair.Value);
                    metadataEncoded.Add(keyValuePair.Key, encodedValue);
                }
            }
            await using (stream)
            {
                BlobClient blobClient = GetBlobClient(containerName, blobName);
                BlobHttpHeaders httpHeaders = new BlobHttpHeaders { ContentType = contentType };
                BlobRequestConditions conditions = new BlobRequestConditions();
                Response<BlobContentInfo> uploadAsync = await blobClient.UploadAsync(stream, httpHeaders, metadataEncoded, conditions);
                stream.Close();
                return uploadAsync;
            }
        }

Если я попытаюсь загрузить произвольные файлы, такие как этот пример, pdf => http://www.africau.edu/images/default/sample.pdf, то все будет работать нормально. Но по какой-то причине, если я пытаюсь загрузить pdf-файлы, как на этой странице =>
https://docs.microsoft.com/en-us/dotnet/core/
Dot. NET Основная документация PDF

Я получаю следующее исключение:

Inner Exception 1:
HttpRequestException: Error while copying content to a stream.

Inner Exception 2:
IOException: Unable to read data from the transport connection: The I/O operation has been aborted because of either a thread exit or an application request..

Inner Exception 3:
SocketException: The I/O operation has been aborted because of either a thread exit or an application request.

Я не думаю, что это связано с размером файла, потому что я также пробовал некоторые другие файлы .pdf с большими размерами, и они получили значение Azure Память.

Я что-то упустил, указав c здесь? Я также скачал .pdf из https://docs.microsoft.com/en-us/azure/sql-database/ и получил ту же ошибку из строки await blobClient.UploadAsync()

Примечание. В качестве ссылки я обнаружил эту проблему с открытым GitHub, но пока не решенную. https://github.com/Azure/azure-sdk-for-net/issues/9212

...