我想将从http url接收的文件直接下载到amazon s3存储桶中,而不是本地系统中。 我在64位Windows OS上运行python。
在文件提取期间,我尝试提供Amazon S3的存储桶url作为python的urlretrieve函数的第二个参数。
urllib.request.urlretrieve(url, amazon s3 bucket url)
我希望它直接将文件上传到s3,但是经过一番思考之后,它失败并出现filenotFound error。
答案 0 :(得分:0)
您似乎想在Windows计算机(本地计算机或Amazon EC2上运行)上运行命令,该命令会将URL标识的页面内容直接复制到Amazon S3。
这是不可能的。没有针对Amazon S3的API调用,该API可以从其他位置检索内容。
您将需要从Internet 下载文件,然后上传到Amazon S3。代码类似于:
import boto3
import urllib.request
urllib.request.urlretrieve('http://example.com/hello.txt', '/tmp/hello.txt')
s3 = boto3.client('s3')
s3.upload_file('/tmp/hello.txt', 'mybucket', 'hello.txt')