Исходный код esu.s3_bucket

from esu.base import BaseAPI, Field, ObjectAlreadyHasId, ObjectHasNoId


# pylint: disable=invalid-name
[документация]class S3Bucket(BaseAPI): """ Args: id (str): Идентификатор name (str): Имя бакета в ЕСУ external_name (str): Имя бакета в S3 """ class Meta: id = Field() name = Field() external_name = Field()
[документация] @classmethod def get_object(cls, id, s3, token=None): """ Получить объект бакета хранилища S3 по его ID Args: id (str): Идентификатор бакета хранилища S3 token (str): Токен для доступа к API. Если не передан, будет использована переменная окружения **ESU_API_TOKEN** Returns: object: Возвращает объект бакета хранилища S3 :class:`esu.S3bucket` """ s3bucket = cls(token=token, id=id) s3bucket._get_object('v1/s3_storage/{}/bucket'.format(s3.id), s3bucket.id) return s3bucket
[документация] def create(self, s3): """ Создать объект Raises: ObjectAlreadyHasId: Если производится попытка создать объект, который уже существует """ if self.id is not None: raise ObjectAlreadyHasId self._commit(s3)
[документация] def save(self, s3): """ Сохранить изменения """ if self.id is None: raise ObjectHasNoId self._commit(s3) return self
def _commit(self, s3): s3bucket = {'name': self.name} self._commit_object('v1/s3_storage/{}/bucket'.format(s3.id), **s3bucket)
[документация] def destroy(self, s3): """ Удалить объект Raises: ObjectHasNoId: Когда производится попытка удалить несуществующий объект """ if self.id is None: raise ObjectHasNoId self._destroy_object('v1/s3_storage/{}/bucket'.format(s3.id), self.id) self.id = None