超过一定大小的文件在Swashbuckle中返回404。Swagger端点带有IOperationFilter文件上传

时间:2018-10-11 18:00:05

标签: c# swagger swashbuckle

使用上载文件参数时,使用Swagger UI时似乎存在文件大小限制。我不确定该限制在哪里(chrome,swagger,web api),但是已经提供给我用来测试的文件是61.9 MB(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());
    }

此终结点需要消耗的文件很大,但是超过一定大小(例如大约5兆吗?),我开始收到404错误,而不是在点击提交时碰到了终结点。

0 个答案:

没有答案