当前位置: 首页 > 知识库问答 >
问题:

使用传输实用程序拒绝AWS S3访问的C#

宋劲
2023-03-14

我已经努力了几个小时来让它工作,但不确定我做错了什么。我在美国西部俄勒冈州(美国西部-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);

我得到的错误消息是:

拒绝访问亚马逊。运行时。内部。HttpErrorseExceptionHandler.HttpErrorseExceptionHandler.cs,第60行中的HandleExcture(IExecttionContext执行上下文,HttpError响应异常)

我的S3政策:

{"版本":"2012-10-17","id":"政策1516569218147","声明": [ { "Sid":"Stmt1516569211561","效果":"允许","主体":{"AWS":"arn: aws: iam::{iamID}:user/Publisher"},"Action":"s3:*","Resources":"arn: aws: s3:::{back-name}" } ] }

有什么想法吗?

共有1个答案

丁豪
2023-03-14

根据文件:

S3位置与格式S3://bucket/path匹配。不要包含endpoint。例如,s3://us-east-1.amazonaws.com/bucket/path会导致“拒绝访问”错误。

 类似资料:
  • 问题内容: 我得到以下IOException: 尝试运行以下代码时: 在我看来,由于某种原因,JVM无法创建新文件。如果文件已经存在,则代码可以很好地运行。是否存在某种访问文件来指示JVM是否可以创建新文件还是我只是在做错什么? 任何帮助深表感谢 :-) 我正在运行Java 1.4,并且已经在Windows XP中的JDeveloper中进行了测试。 问题答案: 问题在于这些调用彼此接替: 创建操

  • 问题内容: 我在使它工作时遇到问题。它接收一个字符串,其中包含几条信息。但是,当我尝试将String写入文件以跟踪程序随时间的变化时,我收到拒绝访问错误: 叠层纱 完整的堆栈跟踪: 58行: 问题答案: 您必须先创建文件夹。但是您不能调用file.mkdirs()-您需要调用file.getParentFile()。mkdirs()-否则,您将使用文件名创建一个文件夹(这将阻止您使用以下命令创建文

  • 我正试图将一个实时WordPress站点复制到我的本地服务器上。我通过MAMP从现场站点导入数据库,在尝试连接到phpMyAdmin时收到了一条错误消息: 我在这一点上被难住了。有人能帮忙吗?

  • 问题内容: 当我在PHPMyAdmin中设置root密码时,出现以下错误: 我无法打开PHPMyAdmin面板。我究竟做错了什么? 问题答案: 编辑您的phpmyadmin config.inc.php文件,如果您有密码,请在以下代码中将其插入密码前面:

  • 伙计们,我有共同的问题。我想用PHP将MySQL数据库中的数据显示到HTML页面中。 使用此代码: 但我有

  • 问题内容: 有些脚本只能通过ajax使用,并且我不希望用户直接从浏览器运行这些脚本。我使用jQuery进行所有ajax调用,并将所有ajax文件保存在名为ajax的文件夹中。 因此,我希望创建一个htaccess文件来检查ajax请求(HTTP_X_REQUESTED_WITH)并拒绝该文件夹中的所有其他请求。(我知道可以伪造http标头,但我想不出更好的解决方案)。我尝试了这个: ReWrite