python - 如何使用 Python Boto v2.38.0 创建的签名 URL 在 S3 存储桶上上传视频?
问题描述
我们有一项功能,我们需要为客户端创建一个 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 视频的请求?
任何帮助将不胜感激。
谢谢。
解决方案
您可以使用 botobuild_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",
)
您将获得一个字典,其中包含表单字段名称和值以及要发布到的 url。
推荐阅读
- python - 使用 UTF-8 字符串写入文件期间的 Python 编解码器错误
- r - Extract class of each field in data.frame; summarize classes in new data.frame
- excel - Excel VBA:如何使用循环访问列的所有单元格中的数据并将该数据分配给字符串变量?
- android - 从 DocumentFile 中的 ZipInputStream 中从 ZipEntry 中获取 InputStream
- sql-server - SQL Server MS,更改 Windows 身份验证用户
- php - 你能知道 Laravel 的 API 请求来自哪里吗?
- string - 你将如何根据围绕它的一组符号来分离字符串的一部分(Lua)
- c# - 使 UWP 颜色选择器变小或变大
- jboss - 对 EAP 7.2 中使用的 wildfly 版本感到困惑
- php - 在声明中更改字体大小