gpt4 book ai didi

c# - 上传到 AWS S3 时无法访问已关闭的流

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:13 25 4
gpt4 key购买 nike

我正在尝试将文件从我的 .NET 核心应用程序上传到 AWS S3。

我创建了一个 byte[] 类型的 PDF,并将其传递给以下函数:

public async Task<S3Response> UploadFileAsync(string bucketName, byte[] file)
{
try
{
var fileTransferUtility = new TransferUtility(_s3Client);
var fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
BucketName = bucketName,
StorageClass = S3StorageClass.Standard,
PartSize = 6291456,
CannedACL = S3CannedACL.NoACL,
Key = "Test.pdf"
};

using (var ms = new MemoryStream(file))
{
fileTransferUtilityRequest.InputStream = ms;
}

await fileTransferUtility.UploadAsync(fileTransferUtilityRequest);
}
catch (AmazonS3Exception e)
{
return new S3Response
{
Message = e.Message,
Status = e.StatusCode
};
}
}

我的捕获处理程序触发的错误是:

Cannot access a closed stream

我做错了什么?

最佳答案

您的 using 语句会导致您创建的 MemoryStream 在您尝试将其传递给 UploadAsync 之前关闭。相反,从您的 using block 的 调用 UploadAsync:

using (var ms = new MemoryStream(file))
{
fileTransferUtilityRequest.InputStream = ms;
await fileTransferUtility.UploadAsync(fileTransferUtilityRequest);
}

关于c# - 上传到 AWS S3 时无法访问已关闭的流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53257251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com