如何使用键/对象的通配符在django中生成aws预签名url

如何使用键/对象的通配符在django中生成aws预签名url,django,boto3,wildcard,pre-signed-url,Django,Boto3,Wildcard,Pre Signed Url,我的要求是使用一次生成的预签名url将多个webm文件(使用webrtc捕获)上载到s3 我尝试了下面的代码来生成预先签名的url,并使用邮递员上传文件 def create_presigned_url(method_name,s3object,expiration=36000): try: response = s3_client.generate_presigned_post(S3Bucket,

我的要求是使用一次生成的预签名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中不支持通配符

我还没有找到任何明确说明这一点的文件,但是我今天必须做到这一点,我的发现表明这是不可能的

我创建了一个带有键test/
的预签名URL 我只能检索S3中名为test/的文件的内容,而不能检索任何其他带有test/前缀的文件。对于其他每个文件,请求都失败,因为“我们计算的请求签名与您提供的签名不匹配。请检查您的密钥和签名方法。”


此错误特别指出请求与签名不匹配,这与我创建指向不存在的对象的签名url时不同,请求失败是因为找不到密钥。

您的
密钥
应以
/path to file/
开头。您的
密钥
应以
/path to file/
开头。