我已经尝试了几个小时才能让它工作,不知道我做错了什么 . 我在俄勒冈州西部有一个水桶(us-west-2) . 我有一个具有完全S3访问权限的IAM用户 . 我试图将字符串的内容存储在S3上的文件中 . 以下是代码:

using System.IO;
using Amazon;

namespace XXX.Util
{

    public static class S3
    {

        private static Amazon.S3.Transfer.TransferUtility transferUtility;

        public static void UploadFile(string bucket, string key, string contents)
        {    
            // user "publisher" credentials
            transferUtility = new Amazon.S3.Transfer.TransferUtility("{AccessID}", "{Secret}",RegionEndpoint.USWest2);

            using (Stream s = GenerateStreamFromString(contents))
            {
                using (transferUtility)
                {
                    transferUtility.Upload(s, bucket, key);
                }
            }


        }
        public static Stream GenerateStreamFromString(string s)
        {
            MemoryStream stream = new MemoryStream();
            StreamWriter writer = new StreamWriter(stream);
            writer.Write(s);
            writer.Flush();
            stream.Position = 0;
            return stream;
        }
    }
}

我用以下方法调用方法:

S3.UploadFile("s3-us-west-2.amazonaws.com/{bucket-name}", guid.ToString(),contents);

我得到的错误信息是:

AmazonS3Exception:拒绝访问HttpErrorResponseExceptionHandler.cs中的Amazon.Runtime.Internal.HttpErrorResponseExceptionHandler.HandleException(IExecutionContext executionContext,HttpErrorResponseException异常),第60行

我的S3政策:

{“Version”:“2012-10-17”,“Id”:“Policy1516569218147”,“Statement”:[{“Sid”:“Stmt1516569211561”,“效果”:“允许”,“校长”:{“ AWS“:”arn:aws:iam :: :user / publisher“},”Action“:”s3:*“,”Resource“:”arn:aws:s3 ::: “ }]}

有任何想法吗?