Https 如何使用wget从S3存储桶下载文件?
通过S3cmd工具和S3cmd put contentfile S3://test\u bucket/test\u file,我可以用我的凭证将一些内容推送到S3 bucket 问题是,我需要在其他没有安装s3cmd但安装了wget的计算机上下载这个bucket的内容 当我尝试使用wget从我的bucket下载一些内容时,我得到了以下结果:Https 如何使用wget从S3存储桶下载文件?,https,amazon-s3,amazon,wget,s3cmd,Https,Amazon S3,Amazon,Wget,S3cmd,通过S3cmd工具和S3cmd put contentfile S3://test\u bucket/test\u file,我可以用我的凭证将一些内容推送到S3 bucket 问题是,我需要在其他没有安装s3cmd但安装了wget的计算机上下载这个bucket的内容 当我尝试使用wget从我的bucket下载一些内容时,我得到了以下结果: https://s3.amazonaws.com/test_bucket/test_file --2013-08-14 18:17:40-- `http
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.
我已经通过AmazonAWSWeb控制台手动公开了这个bucket
问题是:如何使用wget从S3存储桶下载内容?进入txt本地文件?您应该能够通过如下创建的url访问该文件:
http://{bucket name}.s3.amazonaws.com/
现在,假设您的s3文件路径为:
s3://testbucket/testfolder/testfile.txt
您应该能够使用以下url创建此文件:
http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt
明白了。。。如果您在S3 bucket中上传一个带有--acl public标志的S3CMD文件,那么您应该能够使用wget轻松地从S3下载该文件
结论:为了使用wget进行下载,首先需要使用s3cmd put--acl public--guess mime type S3://test\u bucket/test\u file
上传S3中的内容
或者,您可以尝试:
s3cmd setacl --acl-public --guess-mime-type s3://test_bucket/test_file
请注意上面的setacl标志。这将使s3中的文件可以公开访问
然后可以执行wgethttp://s3.amazonaws.com/test_bucket/test_file
wget--无支票证书--无代理'http://your_bucket.s3.amazonaws.com/your-copied-link-address.jpg“
AWS cli有一个“presign”命令,可用于获取私有s3资源的临时公共URL
aws s3 presign s3://private_resource
然后,您可以使用wget使用预先签名的URL下载资源。如果您无权在您的Linux机器上安装aws客户端,请尝试以下方法
- 到达bucket并单击下载为按钮。复制生成的链接
- 执行下面的命令 wget--无检查证书--无代理--用户=用户名--询问密码-O“下载url”
谢谢我遇到了同样的错误,我通过添加安全组入站规则解决了这个问题: 在端口443处键入HTTPS到我的实例所在子网的IP地址(因为我是唯一访问它的人)
希望它能帮助那些忘记包括这个的人,我有好几次遇到过同样的情况。这是使用CLI is next命令从AWS下载任何文件的最快、最简单的方法:
aws s3 cp s3://bucket/dump.zip dump.zip
文件下载速度比通过wget快,至少在您不在我们公司的情况下是如此。请确保已正确授予读取权限 如果不想输入任何帐户/密码,只需使用wget命令而不输入任何密码,请确保权限如以下设置所示 通过Amazon S3->存储桶->权限-编辑 检查对象的“所有人(公共访问)”并保存更改
或者选择objest并转到“操作”->“公开”,将在权限设置下执行相同的操作。如果已公开该bucket,则还需要公开该对象。
另外,wget命令不适用于S3://地址,您需要在AWS web控制台中查找对象的URL。注意,您使用的是HTTP协议,amazon管理控制台为我提供了一个HTTPS URL。。。HTTPS是如何改变事情的?工作得很好!无需安装s3cmd或其他CLI:)“HTTP请求已发送,等待响应…403禁止”错误403:禁止。它工作得非常好!!!它为我提供了一个http路径,我可以在wget中使用它来恢复文件的下载。非常感谢。上次尝试使用时,我也犯了禁止的错误。并且找到了一种更好的方法,使用
awss3cp
命令来实现这一点,就像我在我的回答(见上文或下文)中所描述的那样。对于其他人,我必须用引号将我的s3url括起来,这样它才能工作。否则,我得到403禁止。e、 g.wget”https://s3.amazonaws.com/test_bucket/test_file“
。我们的URL即将过期,其中有一些需要验证的技巧。我建议不要在回答中使用花言巧语。他们有可能被误解为根本没有答案。你想回答本页顶部的问题,是吗?否则请删除此帖子。请将此作为解释性的有条件回答,以避免给人以提出澄清问题而不是回答的印象(对此,应使用评论而不是回答,比较)。例如,“如果你的问题是……那么解决办法就是……因为……”