我使用访问Blob存储的HTTP触发器功能创建了一个文件服务器。这很好,文件是使用HTTP GET提供的。
但是,我想实现一个HTTP HEAD方法响应,以确定文件的大小。这在直接调用时也可以正常工作,但在通过代理调用时则不行,在这种情况下,Content-Length返回为0
我创建了一个简化示例来演示问题
功能代码
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"HeadTestProxy": {
"matchCondition": {
"route": "/proxy/HeadTest",
"methods": [
"HEAD"
]
},
"backendUri": "https://localhost/api/HeadTest"
}
}
}
代理定义
cache-control →no-cache
content-length →1234
date →Thu, 15 Mar 2018 09:36:10 GMT
expires →-1
pragma →no-cache
server →Microsoft-IIS/10.0
x-header-test →true
x-powered-by →ASP.NET
功能响应
cache-control →no-cache
content-length →0
date →Thu, 15 Mar 2018 09:36:06 GMT
expires →-1
pragma →no-cache
server →Microsoft-IIS/10.0
x-header-test →true
x-powered-by →ASP.NET
代理响应
RT
进一步说明
我还尝试将长度放在自定义标题中,然后将其复制到代理的响应覆盖中的原始Content-Length标头中,但这也导致了0
答案 0 :(得分:1)
content-length是一个内容标题,因此只能添加到内容标题集合
我已经创建了一个测试演示,我也遇到了和你一样的问题。 Content-Length无法传递给代理响应头。我想这是一个错误。关于Azure功能中的代理的文章很少。特别是对于http头。我建议你把这个问题发给github。