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

匿名用户无法启动多部分上载。请验证

滕星纬
2023-03-14

我得到以下错误-

<Error>
<Code>AccessDenied</Code>
<Message>Anonymous users cannot initiate multipart uploads.  Please authenticate.</Message>
<RequestId>0C687E53286678DE</RequestId>
<HostId>eqEEEENy6phBYvOySn3gOsbk9wJYjbE/yWK6MBtmR0M4Ir0TEdh9SfApX/EdZZ6sZ7Mc/wSwh0U=</HostId>
</Error>

当我调用AWS API从JS启动多部分上传时,正如其他用户在其他讨论中建议的那样,我也在我的策略中添加了PutObjectACL。然而,我仍然不断地得到这个错误-

以下是我的政策-

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::bucketName"
        },
        {
            "Sid": "PutObject",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucketName/sampleFile/*"
        }
    ]
}

我使用下面ajax调用,也通过授权在头-

var url = 'https://bucketName.s3.amazonaws.com/sampleFile?uploads';

j$.ajax({
            url: url,
            type:"POST",
            headers: formHeadersToBeUploaded,
            processData:false,      
            contentType:false,
           success: function() { 
                alert('Successful while submission');  
            },
        error: function(xhr, status, error) {  
            console.log('Error while sending ' + xhr, status, error);
            }
        }); // END OF AJAX

授权是-

AWS4-HMAC-SHA256凭证=访问密钥ID/20160331/us-east-1/服务/AWS4_请求,签名头=授权;主办x-amz-date,签名=09CAA362719E578CB48699BBC5BD4E408935FB56806653186E782BA009FF3A5

谢谢任何帮助真的很感激

共有1个答案

祁通
2023-03-14

匿名主体只是“*”。此外,我不会将Listbucket授予anonymous,除非你想让每个人都看到你的bucket。此外,还需要确保您可以控制对象。此外,对于多部分上载,您希望启用生命周期策略来删除失败的上载。

当你的桶所有者要求上传需要包括罐装的所有桶所有者完全控制与CLI它看起来像

aws s3 cp hello.json s3://bucketname/sampleFile/hello.json --no-sign-request --all bucket-owner-full-control

S3桶政策

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PutObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::bucketName/sampleFile/*",
            "Condition": {
                "StringEquals": {
                    "s3:x-amz-acl": "bucket-owner-full-control"
                }
            }
        }
    ]
}

要清除不完整的多部分上载,请转到Bucket Management选项卡并创建新的生命周期。在设定的天数之后,可以选择“清理不完整的多部分上载”。

 类似资料:
  • 我有一个大约16mb的文件,正在使用python boto3 upload_file api将该文件上传到S3存储桶中。然而,我认为API在内部选择了多部分上传,并给了我一个“匿名用户无法启动多部分上传”错误。 在应用程序的某些运行中,生成的文件可能较小(几 KB)。一般情况下处理这种情况或修复我上面提到的错误的最佳方法是什么? 我目前有一个Django应用程序,它在运行时生成一个文件,并将此文件

  • 我想从angularJS客户端上传文件。我已经启用了CSRF保护,它可以正常工作,但当我尝试上载文件时,会出现错误: 在请求参数“_CSRF”或标头“X-XSRF-Token”上发现无效的CSRF令牌“null”。 但是令牌在请求头中,并且是正确的!当我禁用CSRF保护时,我可以毫无问题地上传文件。 除此之外,CSRF保护工作正常。 以下是我当前的配置: 安全Configuration.java

  • 我正在使用Multipart执行帖子类型请求。问题是因为我一直收到两个错误 1) 500 2) 422不可处理实体 Api仅接受音乐文件。因此,我添加了一个默认文件,以避免不断选择新文件 和我的界面 如果有任何帮助,我将不胜感激。 我发现它将文件作为对象通过Reform2发送到服务器

  • 我正在使用Spring Boot(1.5.7)和ng2文件上传(1.2.1)将文件上传到服务器。 所以我遇到了下一个问题,当文件上传开始并中断时(例如关闭浏览器选项卡),Spring Boot会记录下一个错误(两次): 当我将@ExceptionHandler添加到@ControllerAdvice时: 和应用程序的下一个属性。属性: 现在,当文件上载中断时,@ExceptionHandler会按

  • 我只是在这个链接上设置一个kubenetes集群 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#multi-platform 我检查kubectl获取节点,然后主节点是就绪的,但是当我访问链接 https://k8s-master-ip:6443/ 它显示错误:用户“系统:匿名”无法获取路径“/”。我错过了

  • 当我尝试用我的代码下载文件时,我出现了这样的错误: HTTP状态500-请求处理失败;嵌套异常是org.springframework.web.multipart.multipartException:无法解析多部分servlet请求;嵌套异常是java.io.ioException:临时上载位置[/tmp/tomcat.5139949927832460132.8080/work/tomcat/l