在 AWS SDK 上上传 .txt FileStream
Uploading .txt FileStream on AWS SDK
我在使用流方面相当陌生,我正在测试使用 SDK API 将 Web 应用程序上传到 Amazon Web Services。在此过程中会生成一个错误,指出 FileStream 为空。我试过使用 Put 而不是 TransferUtility 并阅读了所有 AWS 文档,但上传似乎只能从路径而不是 Web 上传进行解释。有谁知道为什么 FileStream 为空并且保存不起作用?提前致谢!
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
{
//Save File to Bucket
using (FileStream txtFileStream = UploadedFile.InputStream as FileStream)
{
try
{
TransferUtility fileTransferUtility = new TransferUtility();
fileTransferUtility.Upload(txtFileStream, bucketLocation, UploadedFile.FileName);
}
catch (Exception e)
{
e.Message.ToString();//txtFileStream is null!
}
}
}
当您使用 as
进行转换时,它不会抛出异常,而是静默地失败,并且 return 为 null。当您使用 as
时,您说的是
sometimes this could fail, and I'm prepared to handle that.
通常你会做一个空检查:
FileStream txtFileStream = UploadedFile.InputStream as FileStream
if(txtFileStream != null)
{
using(txtFileStream)
{
//.....
}
}
如果您确定这应该是 FileStream
,您应该使用直接转换。如果直接转换失败,将抛出异常。这就像说
this should always be this type, if it isn't, something is horribly wrong and I can't continue.
这样做:
using(FileStream txtFileStream = (FileStream)UploadedFile.InputStream)
{
}
对于你的问题,你需要弄清楚你的转换失败的原因。
我在使用流方面相当陌生,我正在测试使用 SDK API 将 Web 应用程序上传到 Amazon Web Services。在此过程中会生成一个错误,指出 FileStream 为空。我试过使用 Put 而不是 TransferUtility 并阅读了所有 AWS 文档,但上传似乎只能从路径而不是 Web 上传进行解释。有谁知道为什么 FileStream 为空并且保存不起作用?提前致谢!
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USWest1))
{
//Save File to Bucket
using (FileStream txtFileStream = UploadedFile.InputStream as FileStream)
{
try
{
TransferUtility fileTransferUtility = new TransferUtility();
fileTransferUtility.Upload(txtFileStream, bucketLocation, UploadedFile.FileName);
}
catch (Exception e)
{
e.Message.ToString();//txtFileStream is null!
}
}
}
当您使用 as
进行转换时,它不会抛出异常,而是静默地失败,并且 return 为 null。当您使用 as
时,您说的是
sometimes this could fail, and I'm prepared to handle that.
通常你会做一个空检查:
FileStream txtFileStream = UploadedFile.InputStream as FileStream
if(txtFileStream != null)
{
using(txtFileStream)
{
//.....
}
}
如果您确定这应该是 FileStream
,您应该使用直接转换。如果直接转换失败,将抛出异常。这就像说
this should always be this type, if it isn't, something is horribly wrong and I can't continue.
这样做:
using(FileStream txtFileStream = (FileStream)UploadedFile.InputStream)
{
}
对于你的问题,你需要弄清楚你的转换失败的原因。