Файлы с определенным размером возвращают 404 в конечной точке Swashbuckle.Swagger с загрузкой файла IOperationFilter - PullRequest
0 голосов
/ 11 октября 2018

При использовании пользовательского интерфейса Swagger при использовании параметра файла загрузки существует ограничение на размер файла.Я не уверен, где этот предел (chrome, swagger, web api), но файл, с которым мне дали тест, составляет 61,9 МБ (64 913 408 байт).

Я попытался установить максимальную длинусвойство для параметра на ноль, 75000000, слева от значения по умолчанию.

Параметр моего файла:

        public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
    {

        if (operation == null) return;

        var fileParm = new Parameter
        {
            description = "File Upload",
            name = "file",
            @in = "formData",
            required = true,
            type = "file",
            maxLength = 75000000
        };

        if (operation.operationId == "Brands_InsertData")
        {
            if (!operation.parameters.Any())
            {
                operation.parameters = new List<Parameter>();
            }
            operation.parameters.Add(fileParm);
            operation.consumes.Add("multipart/form-data");
        }
    }

Моя конечная точка:

        public async Task<HttpResponseMessage> InsertData()
    {
        BrandDataInsertReport result;
        if (!Request.Content.IsMimeMultipartContent())
        {
            throw new ArgumentNullException("content");
        }
        using (var stream = await FileStreamUtilities.ReadLargeStreamAsync(Request))
        {
            result = GetMockResponse();
        }
        return Request.CreateResponse(HttpStatusCode.OK, result, JsonSerializerUtilities.IsoOverrideFormatter());
    }

Файл, который необходим этой конечной точкепотребление довольно велико, но при определенном размере (скажем, около пяти мегабайт?) я начинаю получать ошибку 404 вместо удара по конечной точке при нажатии кнопки отправки.

...