ActiveStorage :: Blob: Как убедиться, что метаданные `analysis` всегда имеют атрибуты" width "/" height "? - PullRequest
0 голосов
/ 03 июня 2019

Шаги для воспроизведения

Создание модели с вложенным изображением Active Storage (S3) (в моем случае файл .png). Использование по умолчанию active_storage_analysis

Ожидаемое поведение

Поскольку все, что я делал, это вызывал метод analyze (который, как я полагаю, вызывается в первый раз при создании вложения), я ожидаю, что он изначально имеет атрибуты width / height.

Фактическое поведение

В метаданных BLOB-объектов отсутствуют атрибуты ширины / высоты:

#<ActiveStorage::Blob:0x00007fb934129130
 id: "d6d6922a-646f-446f-8656-b1301ca5ba59",
 key: "dm46dnva9crgu9k1r9y4bwmhz3oi",
 filename: "Cheddah_icon-60@3x.png",
 content_type: "image/png",
 metadata: {"identified"=>true, "analyzed"=>true},
 byte_size: 3559,
 checksum: "x+EHSQeB6l3Kvb+8SCMzxg==",
 created_at: Mon, 03 Jun 2019 14:56:13 UTC +00:00>

Затем я вручную анализирую BLOB-объект, вызывая для него метод analyze. Теперь он имеет ширину / высоту:

#<ActiveStorage::Blob:0x00007fb934129130
 id: "d6d6922a-646f-446f-8656-b1301ca5ba59",
 key: "dm46dnva9crgu9k1r9y4bwmhz3oi",
 filename: "Cheddah_icon-60@3x.png",
 content_type: "image/png",
 metadata: {"identified"=>true, "analyzed"=>true, "width"=>180, "height"=>180},
 byte_size: 3559,
 checksum: "x+EHSQeB6l3Kvb+8SCMzxg==",
 created_at: Mon, 03 Jun 2019 14:56:13 UTC +00:00>

Конфигурация системы

Версия Rails : 6.0.0.rc1

Версия Ruby : 2.6.2p47 (ревизия 2019-03-13 67232)

Дополнительная информация

  • Я использую Sidekiq v5.2.7
  • (не уверен, если уместно) мой вариантный процессор VIPS:
image_processing (1.9.0)
      mini_magick (>= 4.9.3, < 5)
      ruby-vips (>= 2.0.13, < 3)

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

Спасибо за помощь

...