在 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)
{

}

对于你的问题,你需要弄清楚你的转换失败的原因。