如何使用Python Boto v2.38.0创建的签名URL在S3 bucket上上传视频?

如何使用Python Boto v2.38.0创建的签名URL在S3 bucket上上传视频?,python,django,boto,pre-signed-url,s3-bucket,Python,Django,Boto,Pre Signed Url,S3 Bucket,我们有一个功能,需要为客户端创建一个s3 bucket签名URL。客户端将在该URL上上载视频 我们正在使用Boto版本2.38.0来生成签名URL 连接=双向连接\u s3 键=测试键 铲斗=测试铲斗 已签名的\u url=conn.generate\u url expires_in=600, 方法=投入, 桶=桶, 键=键, headers={'Content-Type':'application/octet-stream'} 我可以用二进制文件上传文件,但不能用表单数据上传文件。我也尝试了

我们有一个功能,需要为客户端创建一个s3 bucket签名URL。客户端将在该URL上上载视频

我们正在使用Boto版本2.38.0来生成签名URL

连接=双向连接\u s3 键=测试键 铲斗=测试铲斗 已签名的\u url=conn.generate\u url expires_in=600, 方法=投入, 桶=桶, 键=键, headers={'Content-Type':'application/octet-stream'} 我可以用二进制文件上传文件,但不能用表单数据上传文件。我也尝试了多部分/表单数据。 所以,你能建议我一些使用邮递员上传签名URL视频的请求吗

任何帮助都将不胜感激

谢谢。

您可以使用boto获取执行签名post请求所需的HTML表单数据:

conn = connection.S3Connection(
    aws_access_key_id=settings.AWS_ACCESS_KEY_ID,
    aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
)

data = conn.build_post_form_args(
    bucket_name=bucket_name,
    acl='public-read',
    storage_class=None,
    http_method="https",
)

您将获得一本包含表单字段名称和值的词典,以及一个要发布到的url。

谢谢,@Bernhard Vallant,我会试试这个。谢谢,@Bernhard Vallant我觉得很好用。我刚刚在build\u post\u form\u args方法中添加了几个参数。我将在这里的回复中更新这些更改。但是S3 bucket上传过程非常缓慢。我们通过Postman进行了测试,并通过在移动应用程序上集成使用了该API。所以,你能给我建议一些解决方案来克服这个问题吗?你可以研究S3传输加速