我试图弄清楚是否有可能返回从我的AWS S3存储桶中获取的对象的某种流(可能是内存流?)。
S3存储桶包含许多不同类型的图像,文档等。所有这些都应在我的网站上使用。但是,我不想显示我的AWS S3存储桶的路径。
这就是为什么我试图创建一个流并动态显示图像和可下载文档的原因,而不是完整路径。这有意义吗?:-)
我正在使用C#/。NET AWS开发工具包。
期待听到任何指向的想法和指示!
public FileStream GetFile(string keyName)
{
using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast2))
{
GetObjectRequest request = new GetObjectRequest
{
BucketName = bucketName,
Key = keyName
};
using (GetObjectResponse response = client.GetObject(request))
using (Stream responseStream = response.ResponseStream)
using (StreamReader reader = new StreamReader(responseStream))
{
// The following outputs the content of my text file:
Console.WriteLine(reader.ReadToEnd());
// Do some magic to return content as a stream
}
}
}
在.NET 4中,您可以使用Stream.CopyTo将ResponseStream的内容(即Amazon.Runtime.Internal.Util.MD5Stream)复制到MemoryStream中。
GetObjectResponse response = await client.GetObjectAsync(bucketName, keyName);
MemoryStream memoryStream = new MemoryStream();
using (Stream responseStream = response.ResponseStream)
{
responseStream.CopyTo(memoryStream);
}
return memoryStream;
除了使用正在创建的请求client.GetObjectAsync(bucketName, keyName)
进行调用以外GetObject
,在哪里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句