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
.