gpt4 book ai didi

Azure 应用服务 Java - 发布上传请求因大小而失败

转载 作者:行者123 更新时间:2023-12-03 05:41:56 26 4
gpt4 key购买 nike

我有一个用于运行 Spring boot JAR 的 Azure Linux 应用服务。

在此应用程序中,我有几个表单用于将文件上传到 Spring 应用程序,然后对其进行处理。

这一切在本地和 AWS Elastic Beanstalk 实例上都能完美运行。

在 Azure Linux 应用服务上,文件超过 4MB 左右时会失败。

我的猜测是,可能在应用服务前面运行的 IIS 实例存在某种限制,会阻止超过特定大小的发布请求。

我一直在寻找可以在 Azure 门户上进行的任何设置,以允许上传更大的文件,但一直找不到任何设置。

有什么想法吗?

<小时/>

如何解决

(如果您使用 Spring boot 和 Maven 进行部署等)

基于下面@GeorgeChen 的回答。

在我的 Maven 项目的根目录下创建一个 web.config,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<!-- 100 MB in kilobytes -->
<httpRuntime maxRequestLength="204800" />
</system.web>

<system.webServer>
<security>
<requestFiltering>
<!-- 100 MB in bytes -->
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>
</configuration>

修改了POM文件,在Maven插件部分:

            <plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-webapp-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<schemaVersion>V2</schemaVersion>
<resourceGroup>XXXXXXXXX</resourceGroup>
<appName>YYYYYYYYYYY</appName>
<region>northeurope</region>
<pricingTier>B2</pricingTier>
<runtime>
<os>linux</os>
<javaVersion>jre8</javaVersion>
<webContainer>jre8</webContainer>
</runtime>
<deployment>
<resources>
<resource><directory>${project.basedir}/target</directory>
<includes>
<include>*.jar</include>
</includes>
</resource>
<resource>
<directory>${project.basedir}</directory>
<targetPath>/</targetPath>
<includes>
<include>web.config</include>
</includes>
</resource>
</resources>
</deployment>
</configuration>
</plugin>

现在,打包和部署后一切正常,通过 Azure 上传的文件大小可达 100MB。

最佳答案

默认请求大小为4MB,您可以在这里获取:support request File Upload utility guidelines 。因此,如果您想允许上传和下载更大的文件,则必须增加该限制。

您可以在 web.config 文件中设置 maxRequestLengthmaxAllowedContentLength 值。

这是一个示例 web.config。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<!-- 100 MB in kilobytes -->
<httpRuntime maxRequestLength="204800" />
</system.web>

<system.webServer>
<security>
<requestFiltering>
<!-- 100 MB in bytes -->
<requestLimits maxAllowedContentLength="209715200" />
</requestFiltering>
</security>
</system.webServer>

更多信息,您可以引用此博客:Upload Large File In asp.net or website in Windows Azure .

除此之外,您还可以选择将文件上传到 Azure 存储来处理大文件。这是关于使用Web API and Azure Blob .

关于Azure 应用服务 Java - 发布上传请求因大小而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com