Azure Загрузка BLOB-файла через Azure Управление API завершается с ошибкой - BackendConnectionFailure: при передаче-ответе - PullRequest
1 голос
/ 14 февраля 2020

У меня есть требование, которое должно позволять пользователю разрешать загрузку файлов через Azure Blob Storage. Я не должен раскрывать хранилище BLOB-объектов или создавать SAS для файла и предоставлять его конечному пользователю. Поэтому для этой цели я использовал API Management, а во входящей политике я генерирую SAS и формирую полный URL-адрес для загрузки BLOB-объектов и устанавливаю его в качестве Backend-сервиса.

Например: после формирования серверной службы она будет выглядеть следующим образом:

https://myblobstorage.blob.core.windows.net/container/file.zip?sv=2018-03-28&sr=b&sig=fceSGjsjsuswsZk1yv0Db7EYo%3D&st=2020-02-14T12%3A36%3A13Z&se=2020-03-15T12%3A41%3A13Z&sp=r

Я могу загружать файлы размером 14 ГБ через API-управление с пропускной способностью 10 МБ / с. Но я также хочу скачать файл размером 200 ГБ. Когда я пытаюсь загрузить этот файл, начинается загрузка, и я могу загрузить некоторый контент, но через некоторое время происходит сбой с приведенной ниже ошибкой. И во время загрузки максимальная пропускная способность составляет 10 МБ / с.

enter image description here

После того, как я проверил журнал App Insight на наличие этой ошибки, я вижу следующую ошибку - BackendConnectionFailure: at transfer-response, Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. Кажется, эта ошибка означает, что возникла проблема при хранилище больших двоичных объектов, но точно не указывает, каким оно может быть.

Если я использую фактический URL-адрес SAS, созданный из API-интерфейса и загружаемого файла. Загрузка завершается с гораздо более высокой пропускной способностью 90 Мбит / с.

Я не установил никаких ограничений пропускной способности или загрузки с использованием политики в APIM.

Я пытаюсь проверить, есть ли какая-либо настройка по умолчанию, которая запрещает загрузку этого файла в Blob или APIM? А также пытаюсь выяснить, почему пропускная способность настолько низкая, когда я загружаю файл с использованием APIM.

Примечание: я использую виртуальную машину Azure с хорошей конфигурацией и использую curl для тестирования моего API.

...