繁体   English   中英

Boto3,如何在使用 generate_presigned_url 时禁用 ACL?

[英]Boto3, how to disable ACL when using generate_presigned_url?

我不断收到此错误:

调用 PutObject 操作时发生错误(AccessControlListNotSupported):存储桶不允许 ACL

我正在切换到分块上传,以前我可以在下面做,这个上传很好。

original = models.FileField(storage=S3Boto3Storage(bucket_name='video-sftp',default_acl=None),upload_to='', blank=False, null=False)

现在我正在使用 generate_presigned_url 并且 ACL 参数被忽略。

 url = client.generate_presigned_url(
            ClientMethod="put_object",
            Params={
                "Bucket": "video-sftp",
                "Key": f"{json.loads(request.body)['fileName']}",
                "ACL": "None"
            },
            ExpiresIn=300,
        )

我该如何解决?

我完全省略了参数ACL并且它有效:

s3_client.generate_presigned_url(
    'put_object',
    Params = {'Bucket': bucket_name, 'Key': key}
)

如果您想使用ACL参数,也许您不应该将它设置为字符串"None" ,而是使用值None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM