尝试将图像上传到具有公共读取权限的 Amazon S3。
上传被拒绝:
使用 ACL 'PublicReadWrite'
_uploadRequest.ACL = AWSS3BucketCannedACLPublicReadWrite
上传成功:
使用 ACL “私有”
_uploadRequest.ACL = AWSS3BucketCannedACLPrivate
有什么解决办法吗?方向?
我的代码:
1. 设置证书
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
initWithRegionType:_regionType
identityPoolId:_pool_id];
2. 配置
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc]initWithRegion:_regionType credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
3. 创建上传请求
_uploadRequest = [AWSS3TransferManagerUploadRequest new];
_uploadRequest.ACL = AWSS3BucketCannedACLPublicReadWrite;
4. 启动传输管理器
AWSS3TransferManager * transferManager = [AWSS3TransferManager defaultS3TransferManager];
[[transferManager upload:_uploadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor] withBlock:^id(AWSTask * task) {
return nil;
}];
存储桶权限为读/写(适用于所有用户)
桶策略:
{
"Version": "2012-10-17",
"Id": "Policy14...5",
"Statement": [
{
"Sid": "Stmt14.....5",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::myBucket/UsersUploads"
}
]
}