我正在使用SharpBITS从AmazonS3下载文件。后台智能传输服务和亚马逊S3
> // Create new download job. BitsJob
> job = this._bitsManager.CreateJob(jobName, JobType.Download);
> // Add file to job.
> job.AddFile(downloadFile.RemoteUrl, downloadFile.LocalDestination);
> // Resume
> job.Resume();
它适用于不需要认证的文件。然而,只要我为AmazonS3文件请求添加认证查询字符串,服务器的响应是http状态403-未授权。 Url在浏览器中运行文件。
下面是从BIT服务的HTTP请求:
HEAD /mybucket/6a66aeba-0acf-11df-aff6-7d44dc82f95a-000001/5809b987-0f65-11df-9942-f2c504c2c389/v10/summary.doc?AWSAccessKeyId=AAAAZ5SQ76RPQQAAAAA&Expires=1265489615&Signature=VboaRsOCMWWO7VparK3Z0SWE%2FiQ%3D HTTP/1.1
Accept: */*
Accept-Encoding: identity
User-Agent: Microsoft BITS/7.5
Connection: Keep-Alive
Host: s3.amazonaws.com
从网络浏览器的一个之间的唯一区别是请求类型。 Firefox发出GET请求,BITS发出HEAD请求。 Amazon S3 HEAD请求和查询字符串验证是否有任何问题?
问候,Blaz
准确地查看SharpBits生成的HTTP请求的样子会很有帮助。您可以使用调试器将其解决。 – 2010-02-06 17:31:48
我认为HEAD请求可能存在问题,也许S3无法正确处理它。 BITS使用范围协议标头。 – 2010-02-06 18:10:31
事实上,这些在评论中,使他们几乎无法理解。你为什么不编辑你的问题,并在那里包含标题,并用代码块格式化。 – 2010-02-06 18:11:14