流文件,我有一個問題想流從Amazon S3的文件。基本上,我有存儲在amazom s3上的文件,因爲用戶需要進行身份驗證,所以無法直接訪問這些文件。我試圖找到一種方法來流式傳輸文件,而無需將每個文件從亞馬遜下載到我的服務器上,然後從我的服務器上下載到最終客戶端。我只是希望能夠直接流式傳輸文件,但似乎.NET中的大多數流讀取器類並不是這樣做的電纜。如果我錯了,請糾正我。從Amazon S3的
3
A
回答
6
您無需將文件下載到您的服務器,通過打開流亞馬遜S3文件通過你的服務器以流從Amazon S3到客戶端的文件,然後從中讀取和客戶端流寫入(由緩衝區緩存) 。
示例代碼:
byte[] buffer = new byte[BUFFER_SIZE];
GetObjectRequest getObjRequest = new GetObjectRequest().WithBucketName(Bucket_Name).WithKey(Object_Key);
using (GetObjectResponse getObjRespone = amazonS3Client.GetObject(getObjRequest))
using (Stream amazonStream = getObjRespone.ResponseStream)
{
int bytesReaded = 0;
Response.AddHeader("Content-Length", getObjRespone.ContentLength.ToString());
while ((bytesReaded = amazonStream.Read(buffer, 0, buffer.Length)) > 0 && Response.IsClientConnected)
{
Response.OutputStream.Write(buffer, 0, bytesReaded);
Response.OutputStream.Flush();
buffer = new byte[BUFFER_SIZE];
}
}
+0
哪些錯誤與'Stream.CopyTo'? – Gusdor
+0
只是如果你使用的.Net框架4.0或更高版本可以使用Stream.CopyTo,我使用它之前,我是有一個問題(文件損壞),但我不知道究竟是問題,但我認爲這是在流編碼。 –
相關問題
- 1. 從Amazon S3
- 2. 從Amazon S3的軌道
- 3. 的Flowplayer設置從Amazon S3
- 4. 實時圖像從Amazon S3
- 5. 從Android上傳到Amazon S3
- 6. PHP在Amazon S3
- 7. 在Amazon S3
- 8. Amazon S3 GET Object
- 9. Amazon S3權限
- 10. Amazon CloudFront和S3
- 11. Amazon S3 with flowplayer
- 12. 關於Amazon S3
- 13. Google PageSpeed Amazon S3
- 14. Postfix和Amazon S3
- 15. SignatureDoesNotMatch - Amazon S3 API
- 16. Amazon S3和Yii2
- 17. git和Amazon s3
- 18. Amazon S3和PHP
- 19. Amazon S3和CloudFront
- 20. Amazon S3&Checksum
- 21. Amazon S3架構
- 22. Carrierwave和amazon s3
- 23. Amazon S3和swfaddress
- 24. 授予Amazon Amazon權限以編程方式從Amazon S3讀取
- 25. 從AngularJS的Amazon S3獲取圖像
- 26. WinHttp不從WinXP上的Amazon S3下載
- 27. 從本地Hadoop到Amazon S3的DistCp
- 28. 從Heroku調整Amazon S3上的圖像
- 29. 強制從S3 Amazon的服務器
你可能想澄清被存儲的文件是否需要在應用程序中的安全性的元素。據我所知,您可以在.net等創建使用Amazon S3的SDK公共(共享)的網址,如果你想生成這些並設置一個較大的到期時間,你可以轉發用戶到你生成鏈接:http:// docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURLDotNetSDK.html – JLo