У меня есть приложение django, которое я перехожу в rackspace. У меня есть модель, которая использует FileFields, и я использую библиотеку django-storages s3/boto. Я хочу использовать cloudfiles для хранения, и мне нужно иметь возможность обслуживать старый контент s3.изменение django-storage backend от s3 до облачных файлов и обработка старых файлов
На странице шаблона, где я обеспечиваю ссылки на файлы, я делаю это:
href="{{ static_url }}{{ article.code_archive_file}}"
static_url
устанавливается с точки зрения и составляет settings.STATIC_URL
. Очевидно, что это не сработает, так как settings.STATIC_URL
будет меняться при переключении с s3.
Нужно ли писать сценарий для переноса всех моих файлов s3 вручную в облачные файлы, а также просматривать и обновлять все файлы в моих таблицах? (Тьфу). Я бы предпочел изменить хранилище хранилища и оставить старый материал в ведро s3.
Если мне нужно перенести файлы и поля, кто-то уже написал для этого сценарий?
вопрос о бонусе: Какие лучшие практики я не соблюдал при этом? Я использую django уже около полугода.
С помощью манжеты я рекомендую использовать [django-cumulus] (https://github.com/richleland/django-cumulus) для взаимодействия с CloudFiles. Для переноса я настоятельно рекомендую использовать [wonton] (https://github.com/rackerlabs/wonton) для быстрой передачи файлов с помощью gevent. –
В качестве альтернативы тому, что предлагает @KyleKelley, вы можете добавить шаблон try-except-try, который сначала попытается захватить файл с S3, если он получит 404, он пытается использовать CloudFiles, и если это не удается, тогда файл isn ' где угодно. Мы должны были сделать что-то подобное с S3 и облачным хранилищем Google. – rdodev
Кроме того, я должен сказать, что я имел в виду чистую миграцию файлов, а не миграцию базы данных. Эта часть звучит отнимает много времени (но доступна для сценариев). –