我正在尝试将32MB的文件上传到Azure blob。为此,我使用uploadify,一个基于PHP的脚本。
我有另一个21.9MB的文件,一个工作正常,但较大的文件一直给我一个IO错误。我已将user.ini限制设置为以下内容:
upload_max_filesize = 60M
post_max_size = 60M
memory_limit = 60M
max_input_time = 1200
max_execution_time = 1200
我是否忘记设定限制,还是需要查看其他内容?
答案 0 :(得分:2)
关于您的问题,有几点需要了解。如果你使用REST Api(任何编程语言PHP,C#,Java,Python,NodeJs等)解决方案直接上传/下载blob到&从Azure存储,你不会达到这么小的限制。在这种情况下,blob大小限制由Azure Blob存储设置,每个blob的当前限制为1TB。
但是,当您使用网络服务器上传/下载文件时,网络服务器中的代码下方将上传的文件存储到Azure Blob存储中,您将达到Web服务器提供的限制。您的问题与Web服务器设置有关。
我真的想澄清一下,您在上面所做的是修改了IIS Web服务器设置,以解决与在IIS Web服务器上运行的Uplodify脚本相关的上载问题。任何Web服务器中的文件上载都通过HTTP进行,您已将IIS设置更改为通过HTTP通道接受更大的文件,并且更改Web服务器配置对您有所帮助。
答案 1 :(得分:0)
我解决了问题,我做的是以下内容:
创建一个web.config文件。
<?xml version="1.0"?>
<configuration>
<system.web>
<!-- other settings -->
<httpRuntime maxRequestLength="104857600" /> <!--100 MB-->
</system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="104857600" /> <!--100 MB-->
</requestFiltering>
</security>
</system.webServer>
</configuration>
在此之后我只得到一个http 500错误,为了解决这个问题,我在.htaccess文件中添加了以下行:
LimitRequestBody 200MB