如何使用 Python Boto v2.38.0 创建的签名 URL 在 S3 存储桶上上传视频?
How to upload video on S3 bucket using signed URL created by Python Boto v2.38.0?
我们有一个功能,我们需要为客户端创建一个签名 URL 的 s3 存储桶。客户将在 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 视频上传请求?
非常感谢任何帮助。
谢谢。
您可以使用 boto 的 build_post_form_args
获取执行签名 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 到 POST 到。
我们有一个功能,我们需要为客户端创建一个签名 URL 的 s3 存储桶。客户将在 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 视频上传请求?
非常感谢任何帮助。
谢谢。
您可以使用 boto 的 build_post_form_args
获取执行签名 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 到 POST 到。