使用
wget
通过presignedUrl
从S3获取文件,我可以使用在本地PC中获取文件
wget 'https:xxxxx' -O theFile
但是当我尝试将文件放入远程(超出我的控制范围)时,它提示我出现此错误:
Connecting to xxxx.s3-xxx.amazonaws.com (xxxx.s3-xxx.amazonaws.com)|52.219.68.171|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2018-09-12 09:50:57 ERROR 403: Forbidden.
不仅是
presignedUrl
,实际上我无法通过aws s3 cp
下载它,凭证为
AWS_ACCESS_KEY_ID=AAA AWS_SECRET_ACCESS_KEY=BBB aws s3 cp hello.sh.yml s3://opt-prometheus-rules-test/ # to upload
AWS_ACCESS_KEY_ID=AAA AWS_SECRET_ACCESS_KEY=BBB aws s3 cp s3://opt-prometheus-rules-test/JmeterTest.jmx . # to download
最后发现问题出在
access policy
设置错误,禁止了所有的get操作。
联系管理员通过修改访问策略解决问题。
如果您怀疑此错误与通过 Linux 服务器托管的 AWS S3 网站有关,请继续阅读。
转到 AWS 服务 S3 并单击您创建的存储桶,然后单击“权限”选项卡,然后单击右侧的“编辑”选项,然后为“每个人”(公共访问)的对象和对象 ACL 授予读取访问权限。
在此确认您的访问权限,我了解这些更改对此对象的影响。
保存更改。现在返回命令提示符,您的错误将会消失。
您可以将政策提及为 { "版本": "2012-10-17", “陈述”: [ { "Sid": "PublicReadGetObject", "效果": "允许", "校长": "", "操作": "s3:GetObject", "资源": "arn:aws:s3:::bucketnamehere/" } ] }