gpt4 book ai didi

python - 从预签名 url curl S3 对象时访问被拒绝错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:41 35 4
gpt4 key购买 nike

这是我为通过预签名 url 从 S3 下载对象而编写的脚本:

import boto3
import os


AWS_ACCESS_KEY_ID = '<>'
AWS_SECRET_ACCESS_KEY = '<>'
region = '<>'

session = boto3.Session(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, region_name = region)
s3 = session.client('s3')
url = s3.generate_presigned_url('get_object', Params = {'Bucket': '<>', 'Key': '<>.json'}, ExpiresIn = 100)

print url

os.system('curl ' + url)

由此,我能够获取 url,但是 os.system 命令给我以下错误:

<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>...</RequestId><HostId>...</HostId></Error>

但是,当我直接在浏览器中尝试 url 时,它正在下载文件。

那么,我在这里做错了什么?如何通过 Python 脚本下载文件?

最佳答案

发出 curl 请求时,用引号 (") 将 url 括起来。

os.system('curl "'+ url + '"')

要将其保存在文件中,请使用

os.system('curl -o /tmp/file.txt "'+ url + '"')

或者,使用requests模块来生成GET

import requests
response = requests.get(url)

关于python - 从预签名 url curl S3 对象时访问被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43086019/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com