【发布时间】:2016-04-20 04:57:19
【问题描述】:
我是使用流的新手,并且在将文本文件从 Web 应用程序上传到 AWS 时遇到困难。具体来说,将 HttpPostedFileBase.InputStream 强制转换为 (Stream) 不会引发错误,但即使通过了 null 检查,生成的 Stream 也不包含任何数据,因此上传“有效”但总是导致空白文本文档。我在搜索 SO 时找不到这个问题,代码是从 AWS 开发工具包示例中复制的,并且输入流已被复制到 MemoryStream 的起始位置设置为零,所以我在这里陷入了死胡同.有谁知道为什么这不起作用以及如何解决它?提前致谢!
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
{
Stream saveableStream = new MemoryStream();
using (Stream source = (Stream)UploadedHttpFileBase.InputStream)
{
source.Position = 0;
source.CopyTo(saveableStream);//Results in no data!
}
saveableStream.Position = 0;
//Save File to Bucket
try
{
PutObjectRequest request = new PutObjectRequest
{
BucketName = bucketLocation,
Key = UploadedHttpFileBase.FileName,
InputStream = saveableStream
};
PutObjectResponse response = client.PutObject(request);
}
catch (Exception e)
{
e.Message.ToString();
}
}
【问题讨论】:
标签: c# .net amazon-web-services aws-sdk httppostedfilebase