我正在使用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