Как правильно использовать пользовательский сервер для хранения Dragonfly на НПЗ?
У меня есть приложение блога Refinery, упакованное в контейнер Docker. Я пытаюсь использовать альтернативное хранилище данных Dragonfly для хранения изображений, но не могу заставить его работать так, как ожидалось.
Я использую собственное хранилище данных Dragonfly, которое я написал, используя NetStorage API от Akamai. Поскольку он все еще находится в стадии разработки, я еще не опубликовал гем, а вместо этого просто добавил его в папку lib моего проекта Refinery. Затем в /config/initializers/refinery/images.rb
Раскомментировал config.custom_backend_class
а также _opts
строк, добавляя правильные значения для каждой (имя класса в виде строки для первого, список различных ключей API и другая необходимая информация конфигурации для последних).
Однако, когда я пытаюсь загрузить изображение, чтобы протестировать новый пользовательский бэкэнд, Refinery/Dragonfly, похоже, пытается использовать новый бэкэнд и для ранее загруженных изображений. Добавляя кучу трассировок к методам чтения, записи и уничтожения в моем классе, я вижу одну запись и чтение для фактического изображения, которое я пытаюсь загрузить, плюс кучу попыток чтения для уже существующих изображений. Я не уверен, что это предполагаемое поведение.
Кроме того, изображение, которое я пытаюсь загрузить, не отображается на НПЗ, несмотря на то, что мой класс сообщает об успехах как при чтении, так и при записи (опять же, для предполагаемого изображения, не обязательно для остальных). Объект изображения присутствует, но фактическое содержание изображения отсутствует. Метаданные кажутся неповрежденными, если предположить, что метаданные содержат информацию, такую как имя и альтернативный текст изображения.
Я действительно не знаю, что я делаю неправильно, потому что мое хранилище данных кажется правильным. Что я не понимаю, так это то, что идет не так, как надо на Dragonfly и / или на нефтеперерабатывающем заводе, что является следующей проблемой, которую нужно решить. Я отправляю этот вопрос сейчас, потому что я не знаю, сколько времени мне понадобится, чтобы выяснить проблему сейчас, когда мне придется исследовать внутренности этих других проектов.