将文件上传到S3存储桶:等待fileTransferUtility.UploadAsyncfilePath,_bucket

问题描述

我正在尝试将文件上传到S3存储桶,但是在上存在null引用异常 await fileTransferUtility.UploadAsync(filePath,_bucket)

public class FileUploadService : IFileUploadService
{
    private readonly string _bucket;

    public FileUploadService()
    {
        _bucket = ConfigurationManager.AppSettings["S3Bucket"];
    }

    public async Task UploadFile(string filePath,CognitoAWSCredentials cred)
    {
        IAmazonS3 client = new AmazonS3Client(cred);
        TransferUtility fileTransferUtility = new TransferUtility(client);
        await fileTransferUtility.UploadAsync(filePath,_bucket);
    }
}

这是异常的堆栈跟踪的相关部分:

在 Amazon.S3.Util.BucketRegionDetector.GetUsEast1ClientFromCredentials(ImmutableCredentials 凭据) Amazon.S3.Util.BucketRegionDetector.GetHeadBucketPreSignedUrl(String bucketName,ImmutableCredentials凭据)位于 Amazon.S3.Util.BucketRegionDetector.d__13.MoveNext() 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task 任务) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务) Amazon.S3.Util.BucketRegionDetector.d__12.MoveNext() ...

不确定我是怎么做的,因为我是AWS新手。我通过以下方式检索CognitoAWSCredentials

string clientId = ConfigurationManager.AppSettings["CLIENT_ID"];
string poolId = ConfigurationManager.AppSettings["USERPOOL_ID"];
RegionEndpoint region = RegionEndpoint.EnumerableAllRegions.First(q => q.SystemName == "us-east-1");
provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(),region);    

CognitoUserPool userPool = new CognitoUserPool(poolId,clientId,provider);
CognitoUser user = new CognitoUser(username,userPool,provider);

AuthFlowResponse context = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest()
{
    Password = password
});

CognitoAWSCredentials cred = user.GetCognitoAWSCredentials(poolId,region);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)