尝试获取对象和删除对象(PHP)时,AWS S3访问被拒绝 目标
使用PHP下载S3对象,并将其放入zip文件中,以便用户可以导出上载的文档 问题尝试获取对象和删除对象(PHP)时,AWS S3访问被拒绝 目标,php,amazon-s3,Php,Amazon S3,使用PHP下载S3对象,并将其放入zip文件中,以便用户可以导出上载的文档 问题 当我尝试getObject或deleteObject时,会出现“AccessDenied”错误(代码512) 当我尝试使用PHP的copy()函数时,会出现“禁止”错误(代码403) 我可以使用putObject上传文件,并且可以通过URL查看文件,因此我知道s3路径是正确的。但“get”和“delete”似乎存在访问问题 安装程序 我正在运行适用于PHP的AWS SDK版本3 bucket策略有两个“语句
- 当我尝试getObject或deleteObject时,会出现“AccessDenied”错误(代码512)
- 当我尝试使用PHP的copy()函数时,会出现“禁止”错误(代码403)
- 我正在运行适用于PHP的AWS SDK版本3
- bucket策略有两个“语句”,一个用于公共网站的公共访问,另一个用于拒绝“成员”文件夹中对象的访问,除非引用URL位于特定列表中。(见下文)
- 我已经设置了访问和密钥
- 我已经声明了bucket名称、区域,并将签名设置为“v4”
{
"Version": "2012-10-17",
"Id": "Policy1596669767140",
"Statement": [
{
"Sid": "allowPublicAccess",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::bucketname/*"
},
{
"Sid": "DenyPublicAccess",
"Effect": "Deny",
"Principal": "*",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::bucketname/members/*",
"Condition": {
"StringNotLike": {
"aws:Referer": [
"https://example.com/*",
"https://admin.example.com/*",
"https://dev.example.com/*"
]
}
}
}
]
}