Django хранилища S3 - сохранить существующий файл - PullRequest
0 голосов
/ 30 мая 2018

У меня django 1.11 с последними хранилищами django, настройка с бэкэндом S3.

Я пытаюсь программно создать экземпляр ImageFile, используя ссылку на изображение AWS в качестве отправной точки.Я не могу понять, как это сделать, глядя на источник / документацию.

Я предполагаю, что мне нужно создать файл и дать ему путь, полученный из URL без домена, но я не могу точно найти, как.

Конечная цель этого состоит в том, чтобыпрограммно создавать объекты wagtail Image, которые указывают на изображения S3 (поэтому передайте новый файл ImageFile в поле изображения изображения).У меня есть ведро S3, изображения хранятся в нем.

Загрузка изображений работает правильно, поэтому система настроена правильно.

Обновление

Комууточнить, мне нужно сделать обратное нормальному процессу.Обычно физический образ передается системе, которая затем создает ImageFile, файл затем загружается на S3, а URL-адрес присваивается File.url.У меня есть File.url и мне нужен ImageFile объект.

1 Ответ

0 голосов
/ 11 июня 2018

Оказывается, в некоторых моделях, которые ожидают файлы, при использовании DjangoStorages все, что мне нужно было сделать, вместо передачи File в поле файла, передать ключ объекта AWS S3 (поэтому не URL, а простоключ объекта).Когда вызывается model.save(), на S3 делается вызов boto, чтобы проверить, есть ли объект с предоставленным ключом, и элемент сохранен.

...