无法在S3

时间:2016-12-26 11:15:23

标签: amazon-web-services amazon-s3 acl

我已经拥有了根AWS账户所拥有的S3存储桶。

名为uploads的存储桶的子目录向全世界开放,即(在存储桶级别):

{
    "Sid": "Allow anonymous uploads",
    "Effect": "Allow",
    "Principal": "*",
    "Action": [
        "s3:PutObject",
        "s3:PutObjectAcl"
    ],
    "Resource": "arn:aws:s3:::my-bucket/uploads/*"
}

当我以匿名用户身份上传文件(不提供任何AWS凭据)时,我确实可以写入uploads目录。但是,IAM用户和父(root)用户都无法对上载的文件应用任何修改,例如重命名或移动,无论使用何种接口,AWS控制台或API,都会出现问题。

使用POST和参数

上传匿名对象

'acl': 'bucket-owner-full-control''acl': 'public-read-write'

即使在上传参数中明确提到ACL策略,ACL策略是否可能对没有所有者的对象(匿名上传)没有影响?如果是这种情况,是否有办法在上传或追溯时更改文件的所有权?

为什么在上传文件时不考虑ACL政策?

为什么我无法重命名或移动上传的文件?

其他信息

POST请求由名为FileTransfer的cordova插件发出,默认情况下使用POST但如果需要可以使用PUT。以下是执行上传的代码:

        var upload_options = {
            headers: {
                'Content-Length': 4900000,
                'Connection': 'close',
                'acl': 'bucket-owner-full-control'
            },
            params: {
                'key': 'uploads/' + fileName,
                'Content-Type': 'image/jpeg'
            }
        };
        var s3 = new FileTransfer();
        s3.upload(imageURI, encodeURI("https://<my-bucket>.s3-eu-west-1.amazonaws.com/"), upload_success, upload_fail, upload_options);

0 个答案:

没有答案