我可以使用我的凭据通过S3cmd工具将一些内容推送到S3存储桶,并使用s3cmd put contentfile S3:// test_bucket / test_file
问题是,我需要在没有安装s3cmd的其他计算机上从这个桶下载内容,但是他们已经安装了wget。
当我尝试使用wget从我的存储桶中下载一些内容时,我得到了这个:
https://s3.amazonaws.com/test_bucket/test_file
--2013-08-14 18:17:40-- `https`://s3.amazonaws.com/test_bucket/test_file
Resolving s3.amazonaws.com (s3.amazonaws.com)... [ip_here]
Connecting to s3.amazonaws.com (s3.amazonaws.com)|ip_here|:port... connected.
HTTP request sent, awaiting response... 403 Forbidden
`2013`-08-14 18:17:40 ERROR 403: Forbidden.
我已通过亚马逊AWS Web控制台手动将此存储桶公开。
问题是:如何使用wget从S3存储桶下载内容?进入txt本地文件?
答案 0 :(得分:23)
您应该能够从如下创建的网址访问它:
http://{bucket-name}.s3.amazonaws.com/<path-to-file>
现在,说你的s3文件路径是:
s3://test-bucket/test-folder/test-file.txt
您应该可以使用以下网址来获取此文件:
http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt
答案 1 :(得分:23)
您可以使用命令:
wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg'
答案 2 :(得分:8)
知道了...如果你在带有S3CMD的S3存储桶中使用--acl公共标志上传文件,那么就可以轻松地从S3下载S3中的文件...
结论:要使用wget下载,首先需要使用s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file
上传S3中的内容
或者你可以尝试:
s3cmd setacl --acl-public --guess-mime-type s3://test_bucket/test_file
注意上面的setacl标志。这将使s3中的文件可以公开访问
然后你可以执行wget http://s3.amazonaws.com/test_bucket/test_file
答案 3 :(得分:7)
AWS cli有一个&#39; presign&#39;可以用来获取私有s3资源的临时公共URL的命令。
aws s3 presign s3://private_resource
然后,您可以使用wget使用预签名URL下载资源。
答案 4 :(得分:1)
我有几次相同的情况。下一条命令是使用CLI从AWS下载任何文件的最快,最简单的方法:
aws s3 cp s3://bucket/dump.zip dump.zip
至少在美国以外的地区,文件下载比通过wget更快。
答案 5 :(得分:1)
请确保已正确授予读取权限。
如果你不想输入任何账号/密码,只需要通过wget命令而不需要任何密码,确保权限如以下设置所示。
通过 Amazon S3 -> 存储桶 -> 权限 - 编辑 检查“所有人(公共访问)”对象并保存更改。permission setting like this - screenshot
或选择对象并转到“操作”->“公开”,在权限设置下也会做同样的事情。
答案 6 :(得分:0)
如果您无权在您的Linux机器上安装aws客户端,请尝试以下方法。
在下面执行命令
wget --no-check-certificate --no-proxy --user = username --ask-password -O“下载网址”
谢谢
答案 7 :(得分:0)
我遇到了相同的错误,并通过添加“安全组入站”规则解决了该问题:
在我的实例所在的子网的IP地址(因为我是唯一访问它的人)的端口443上的HTTPS类型。
希望它可以帮助忘记了此内容的人
答案 8 :(得分:0)
您已将存储桶设为公开,您还需要将对象设为公开。 此外,wget 命令不适用于 S3:// 地址,您需要在 AWS Web 控制台中找到对象的 URL。