gpt4 book ai didi

python - 如何使用 boto 库生成临时 url 以将文件上传到 Amazon S3?

转载 作者:IT老高 更新时间:2023-10-28 22:19:36 26 4
gpt4 key购买 nike

我知道如何用这种方式下载文件:key.generate_url(3600)

但是当我尝试上传时:key.generate_url(3600, method='PUT'),url 不起作用。有人告诉我:我们计算的请求签名与您提供的签名不匹配。检查您的 key 和签名方法。

我在 boto 主页上找不到有关如何使用函数 generate_url(method='PUT') 的示例代码。这里有人知道如何使用它进行上传吗?如何设置上传文件的路径参数?

最佳答案

我找到了一些时间来试验这个,这就是我发现的。

>>> import boto
>>> c =boto.connect_s3()
>>> fp = open('myfiletoupload.txt')
>>> content_length = len(fp.read())
>>> c.generate_url(300, 'PUT', 'test-1332789015', 'foobar', headers={'Content-Length': str(content_length)}, force_http=True)
'http://test-1332789015.s3.amazonaws.com/foobar?Signature=oUARG45mR95utXsiQYRJNiCI4x4%3D&Expires=1333731456&AWSAccessKeyId=AKIAJOTCCJRP4C3NSMYA&Content-Length=16'

然后我可以使用 curl 将文件放到该 url 中,如下所示:

$ curl --request PUT --upload-file myfiletoupload.txt "http://test-1332789015.s3.amazonaws.com/foobar?Signature=oUARG45mR95utXsiQYRJNiCI4x4%3D&Expires=1333731456&AWSAccessKeyId=AKIAJOTCCJRP4C3NSMYA&Content-Length=16"

这导致文件被上传到存储桶。所以,看来这是可能的。您可能想查看是否可以计算 content-md5 值并将其包含在 header 中,但您还必须弄清楚如何让 curl 发送该 header 。此外,您应该能够通过 HTTPS 而不是 HTTP 进行这项工作,但我还没有尝试过。

关于python - 如何使用 boto 库生成临时 url 以将文件上传到 Amazon S3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10044151/

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