Использование файлового хранилища с Django и Amazon S3

У меня есть сценарий, в котором использование хранилища должно определяться в моем приложении пользователем, поскольку оно будет устанавливать ограничения на объем используемого хранилища. В настоящее время я использую django-storage, boto и S3 для управления файлами и их хранения. Каков наилучший способ агрегирования использования хранилища для каждого пользователя?

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


person Cliff F    schedule 18.03.2014    source источник


Ответы (1)


Это не полное решение, но для начала можно хранить загруженные пользователем поля в папках, специфичных для пользователя. Атрибут «upload_to» поля модели может быть вызываемым, который возвращает местоположение для хранения мультимедиа; это может привести к тому, что загрузки пользователей будут помещены в пользовательские корзины в вашем хранилище S3.

Затем вы можете использовать boto (или другие инструменты) для запроса размера корзины пользователя.

person Joel Burton    schedule 18.03.2014
comment
Это кажется хорошим решением. Мне интересно, нужно ли boto перебирать все ключи в пользовательском сегменте и будет ли это выполнение с интенсивным использованием памяти. Я попробую... спасибо! - person Cliff F; 18.03.2014