C# WebClient对大文件做了一些奇怪的事情
我在S3存储桶前面有一个Varnish服务器。API将生成一个私有URL,并允许我通过Varnish服务器下载此bucket的私有文件 每当我直接从bucket或通过Chrome中的Varnish服务器下载500MB文件时,一切正常 当我将相同的逻辑移动到代理设置为NULL的C WebClient,并且只发送用户代理头时,直接从bucket下载就可以了。当我更改Varnish服务器的URL时,事情开始崩溃。。。它将停止接收文件,每次精确到104.640KB 我将得到一个IOException,流意外结束。我尝试了DownloadData、DownloadFile和它们的异步对应项。它根本无法完成下载C# WebClient对大文件做了一些奇怪的事情,c#,amazon-s3,webclient,varnish,C#,Amazon S3,Webclient,Varnish,我在S3存储桶前面有一个Varnish服务器。API将生成一个私有URL,并允许我通过Varnish服务器下载此bucket的私有文件 每当我直接从bucket或通过Chrome中的Varnish服务器下载500MB文件时,一切正常 当我将相同的逻辑移动到代理设置为NULL的C WebClient,并且只发送用户代理头时,直接从bucket下载就可以了。当我更改Varnish服务器的URL时,事情开始崩溃。。。它将停止接收文件,每次精确到104.640KB 我将得到一个IOException,流
从.NET2.0一直到4.5.1,我一直在来回奔波。有人知道为什么会发生这种情况吗?我得出结论,Varnish在标题上做了一些非常奇怪的事情。我最终设置了openrestynginx+lua,在以某种方式请求URL时使用S3CMD同步文件,并使用lua创建了一个类似于预签名URL的系统。事实证明,它与C WebClient完美结合,最重要的是,我现在可以看到文件确实来自这个特定的服务器,如果Varnish缓存它,情况就不是这样了