Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebClient对大文件做了一些奇怪的事情_C#_Amazon S3_Webclient_Varnish - Fatal编程技术网

C# WebClient对大文件做了一些奇怪的事情

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,流

我在S3存储桶前面有一个Varnish服务器。API将生成一个私有URL,并允许我通过Varnish服务器下载此bucket的私有文件

每当我直接从bucket或通过Chrome中的Varnish服务器下载500MB文件时,一切正常

当我将相同的逻辑移动到代理设置为NULL的C WebClient,并且只发送用户代理头时,直接从bucket下载就可以了。当我更改Varnish服务器的URL时,事情开始崩溃。。。它将停止接收文件,每次精确到104.640KB

我将得到一个IOException,流意外结束。我尝试了DownloadData、DownloadFile和它们的异步对应项。它根本无法完成下载


从.NET2.0一直到4.5.1,我一直在来回奔波。有人知道为什么会发生这种情况吗?

我得出结论,Varnish在标题上做了一些非常奇怪的事情。我最终设置了openrestynginx+lua,在以某种方式请求URL时使用S3CMD同步文件,并使用lua创建了一个类似于预签名URL的系统。事实证明,它与C WebClient完美结合,最重要的是,我现在可以看到文件确实来自这个特定的服务器,如果Varnish缓存它,情况就不是这样了