S3和.net Amazon SDK-由于保护级别而无法访问GetObject

Abh*_*hna 2 c# asp.net amazon-s3 amazon-web-services asp.net-core

嗨,大家好,我正在尝试使用C#将文件从S3下载到iin .net的字节数组中。

我正在遵循以下方法:

var client = new AmazonS3Client(AccessKey, SecretKey, Amazon.RegionEndpoint.EUWEST2);
    using (client)
    {
        MemoryStream ms = new MemoryStream();
        GetObjectRequest getObjectRequest = new GetObjectRequest();
        getObjectRequest.BucketName = Bucketname;
        getObjectRequest.Key = Keyname;

        using (var getObjectResponse = client.GetObject(getObjectRequest))
        {
            getObjectResponse.ResponseStream.CopyTo(ms);
        }
 }
Run Code Online (Sandbox Code Playgroud)

我提到了stackoverflow答案,并遵循上述方法。

但是我收到以下错误信息:

由于保护级别,无法访问GetObject。

我只是在学习S3,如果这个错误是由于存储桶策略或类范围引起的,我现在很困惑!

谢谢:)。

Joe*_*Joe 5

您提到了.NET Core:用于.Net Core和.NET Standard的大多数AWS API仅提供Async变体。您应该使用GetObjectAsync

令人惊讶的是,亚马逊引入了这种不兼容性,因为使用以下代码提供同步版本会很容易:

var task = s3Client.GetObjectAsync(request);
task.Wait();
return task.Result;
Run Code Online (Sandbox Code Playgroud)

  • 万分感谢!需要几个小时才能弄清楚这一点:) (3认同)