【问题标题】:How to upload video on S3 bucket using signed URL created by Python Boto v2.38.0?如何使用 Python Boto v2.38.0 创建的签名 URL 在 S3 存储桶上上传视频?
【发布时间】:2019-03-29 11:14:14
【问题描述】:

我们有一项功能需要为客户端创建一个 s3 存储桶签名 URL。客户端将在该 URL 上上传视频。

我们使用 Boto 2.38.0 版来生成签名 URL。

conn = boto.connect_s3()
key = "test_key"
bucket = "test_bucket"

signed_url = conn.generate_url(
    expires_in=600,
    method="PUT",
    bucket=bucket,
    key=key,
    headers={'Content-Type': 'application/octet-stream'}
)

我可以用 binary 上传文件,但我不能用 form-data 上传文件。我也尝试过 multipart/form-data 。 那么,您能否建议我一些使用 POSTMAN 上传签名 URL 视频的请求?

任何帮助将不胜感激。

谢谢。

【问题讨论】:

    标签: python django boto pre-signed-url s3-bucket


    【解决方案1】:

    您可以使用 boto 的build_post_form_args 来获取执行签名发布请求所需的 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",
    )
    

    您将获得一个字典,其中包含表单字段名称和值以及 POST 到的 url。

    【讨论】:

    • 谢谢,@Bernhard Vallant,会试试这个。
    • 谢谢,@bernhard-vallant 对我来说工作正常。我刚刚在 build_post_form_args 方法中添加了更多参数。我将在回复中更新这些更改。但是 S3 存储桶上传过程很慢。我们已经通过 Postman 进行了测试,并通过在移动应用程序上集成来使用此 API。所以你能否建议我解决这个问题的任何解决方案。
    • 您可以查看 S3 Transfer Acceleration docs.aws.amazon.com/en_en/AmazonS3/latest/dev/…
    猜你喜欢
    • 1970-01-01
    • 2021-09-09
    • 2019-01-30
    • 1970-01-01
    • 2015-08-26
    • 2013-02-11
    • 1970-01-01
    • 2022-10-05
    • 2018-09-14
    相关资源
    最近更新 更多