如何使用 key/object 的通配符在 django 中生成 aws 预签名 url
How to use wildcards for key/object to generate aws pre-signed url in django
我的要求是使用一次生成的预签名 url.
将多个 webm 文件(使用 webrtc 捕获)上传到 s3
我已尝试使用以下代码生成预签名 url 并使用邮递员上传文件
def create_presigned_url(method_name,s3object,expiration=36000):
try:
response = s3_client.generate_presigned_post(S3Bucket,
Key = "",
Fields=None,
Conditions = [
["content-length-range", 100, 1000000000],
["starts-with", "$key", "/path-to-file/]
],
ExpiresIn=expiration)
except Exception as e:
logging.error(e)
return None
return response
当我从邮递员那里尝试时出现以下错误
预签名 URL 不支持通配符。
我无法找到任何明确说明这一点的文档,但我今天必须达到同样的目的,我的发现表明这是不可能的。
我用密钥 test/ 创建了一个预签名 URL。
我只能检索 S3 中名为 test/ 的文件的内容,但不能检索任何其他带有 test/ 前缀的文件。对于其他每个文件,请求都失败了,因为“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。”。
这个错误具体是说请求与签名不匹配,这不同于我对一个不存在的对象做了一个签名url,因为找不到密钥导致请求失败.
我的要求是使用一次生成的预签名 url.
将多个 webm 文件(使用 webrtc 捕获)上传到 s3我已尝试使用以下代码生成预签名 url 并使用邮递员上传文件
def create_presigned_url(method_name,s3object,expiration=36000):
try:
response = s3_client.generate_presigned_post(S3Bucket,
Key = "",
Fields=None,
Conditions = [
["content-length-range", 100, 1000000000],
["starts-with", "$key", "/path-to-file/]
],
ExpiresIn=expiration)
except Exception as e:
logging.error(e)
return None
return response
当我从邮递员那里尝试时出现以下错误
预签名 URL 不支持通配符。
我无法找到任何明确说明这一点的文档,但我今天必须达到同样的目的,我的发现表明这是不可能的。
我用密钥 test/ 创建了一个预签名 URL。
我只能检索 S3 中名为 test/ 的文件的内容,但不能检索任何其他带有 test/ 前缀的文件。对于其他每个文件,请求都失败了,因为“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。”。
这个错误具体是说请求与签名不匹配,这不同于我对一个不存在的对象做了一个签名url,因为找不到密钥导致请求失败.