通过 Wget 的 Amazon AWS S3 签名 URL [英] Amazon AWS S3 signed URL via Wget

查看:34
本文介绍了通过 Wget 的 Amazon AWS S3 签名 URL的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以在我的账户中为存储桶创建一个 Amazon S3 签名 URL,我可以通过 Amazon AWS CLI 从中下载和上传.

I am able to create an Amazon S3 signed URL for a bucket in my account from which I can download and upload via the Amazon AWS CLI.

我已按如下方式创建了 Amazon S3 URL:

I have created the Amazon S3 URL as follows:

from boto.s3.connection import S3Connection
key = os.environ['aws_access_key_id']
secret = os.environ['aws_secret_access_key']
c = S3Connection(key,secret,is_secure=False)
bucket = c.get_bucket('my-bucket')
bktkey = bucket.get_key('stuff.tar.gz')
seconds=60*60*12
url2 = bktkey.generate_url(expires_in=seconds)
print '%s' %url2

使用 url2 并将其复制粘贴到 Chrome 中,我下载了 stuff.tar.gz.

Using url2 and copy pasting it in Chrome, I get stuff.tar.gz downloaded.

但是当我像这样使用 Wget 时

But when I use Wget like so

wget <whatever is in url2>

我收到以下异常

HTTP request sent, awaiting response... 403 Forbidden
2015-12-04 20:48:57 ERROR 403: Forbidden.

为什么在 Chrome 和 Firefox 使用签名的 Amazon S3 URL 成功下载的情况下 Wget 失败?

Why is Wget failing where Chrome and Firefox are successful in downloading using the signed Amazon S3 URL?

推荐答案

我遇到了同样的问题.解决方法是使用引号:

I had the same issue. The fix is to use quotes:

wget -O test.tar.gz "https://bucket.s3.amazonaws.com/app1/10/10.2/test.tar.gz?Signature=hgbdhjJHGK&Expires=1454446963&AWSAccessKeyId=AAAAAAAAA"

这篇关于通过 Wget 的 Amazon AWS S3 签名 URL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆