Boto3, как отключить ACL при использовании generate_presigned_url?

Я продолжаю получать эту ошибку:

При вызове операции PutObject произошла ошибка (AccessControlListNotSupported): The bucket does not allow ACLs

Я перехожу на загрузку с разбивкой на куски, раньше я мог сделать ниже и это загружалось нормально.

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.

Вернуться на верх