Доступ к файлам в приватном бакете объектного хранилища Selectel

Пытаюсь получить временную ссылку с помощью метода generate_presigned_url в библиотеке boto3, чтобы затем передать ее на клиент и пользователь мог просматривать файл из приватного бакета. Столкнулся с тем, что создать ссылку получается, но при запросе к ней выдает 403 код, хотя как читал в документации, метод generate_presigned_url нужен для того, чтобы выдавать доступ к файлам неавторизованным пользователям объектного хранилища.

Ссылку проверяю просто скопировав ее и вставив в браузер. Может я что-то не настроил или не дал каких-то прав? Хотя в политике доступа к контейнеру пробовал как убирать все права доступа, так и для всех пользователь выдавал их все.

Код:

class S3Client:
def __init__(self, access_key: str, secret_key: str, endpoint_url: str, bucket_name: str):
    self.bucket_name = bucket_name
    self.s3_client = boto3.client(
        's3',
        aws_access_key_id=access_key,
        aws_secret_access_key=secret_key,
        endpoint_url=endpoint_url
    )
    def generate_temp_url(self, path: str):
        try:
            url = self.s3_client.generate_presigned_url(ClientMethod='get_object',
                                                        Params={'Bucket': self.bucket_name,
                                                                'Key': '123.jpg'},
                                                        ExpiresIn=3600)
            print("URL", url)
            return url

        except ClientError as e:
            print(f"Ошибка при генерации ссылки для {path}: {e}")

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