流文件,我有一个问题想流从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