Безопасные медиа и оптимизированные изображения?

Всем привет:

Я новый администратор, который только осваивает Discourse. Недавно я включил функции «enable s3 uploads» и «secure media» в своей установке версии 2.6.0.beta4. Похоже, что всё работает — я могу загружать изображения, и они предоставляются через S3 с установленным токеном истечения (я ожидал, что они будут отдаваться по URL с моего сервера Discourse, но, похоже, это относится только к загрузкам, не являющимся изображениями).

Я говорю «похоже, что работает», однако кажется, что всё функционирует не совсем так, как было, когда я использовал локальное хранилище для загрузки изображений. В частности, не работает функция «оптимизации». Прошу прощения, если я использую неверные термины — я всё ещё изучаю систему. Но вкратце: до миграции на настройки S3/Secure я наблюдал следующее поведение: использовалась функция «лайтбокс», пользователю показывалось уменьшенное изображение в адаптивном фрейме лайтбокса, и при желании можно было просмотреть оригинальное изображение.

Теперь же, за исключением аватаров, оптимизированные изображения, похоже, не создаются. При создании нового поста, когда пользователь загружает изображение, оно просто сохраняется в /original/1x, и соответствующие оптимизированные изображения в /optimized/1x не создаются. В результате при просмотре поста отображается просто вставка оригинального изображения.

Правильно ли такое поведение при данной конфигурации? Я не смог найти пост, который напрямую addressing эту проблему, и не видел, чтобы кто-то ещё жаловался на это. Буду признателен за любую предоставленную информацию.

Мне интересно, является ли мой вопрос часто задаваемым (FAQ) или я сформулировал его непонятно. Не мог бы кто-нибудь указать на проблемы в том, что я спрашиваю, если неясно, чего я пытаюсь добиться?

Ваш вопрос понятен, и поиск по запросу «secure media optimized images» на Meta не выдаёт полезных результатов, поэтому это не FAQ.

Я не уверен, как предполагается обрабатывать оптимизированные изображения, когда включена настройка «secure media». Нам нужно дождаться ответа от кого-то, кто лучше разбирается в том, как это должно работать.

Спасибо за ответ, Саймон. Я хотел бы узнать, какие шаги я могу предпринять для дальнейшего отладки. Думаю, мне, возможно, придется запустить новый экземпляр и выполнить чистую установку, а затем поэкспериментировать с параметрами и посмотреть, что произойдет. На данный момент я даже не уверен, сломало ли это переход на хранилище S3 или включение защищенного медиа.

Очевидно, я мог бы посмотреть исходный код, но так как это целый стек, который мне довольно незнаком, это, похоже, займет больше времени.

Обратите внимание, что защищённые медиа — это очень сложная функция для экспертов. Поэтому вы можете столкнуться с трудностями.

Привет, Джефф,

Да, я читал эти предупреждения при настройке. Однако фактическая конфигурация казалась довольно простой и прошла гладко. Есть ли в конфигурации какая-то дополнительная сложность, не охваченная в том документе?

Мой форум уже запущен и работает, вроде бы всё идёт хорошо, кроме этого одного момента, и я даже не уверен, что это просто особенность работы при включённой защите медиафайлов.

Если бы я хотел расширить свои знания и разобраться в той сложности, о которой вы говорите, не могли бы вы подсказать, в каком направлении двигаться? Я новичок в Discourse (и, в общем, в приложениях на Rails), но у меня есть значительный опыт разработки и поддержки облачных систем.

@martin — местный эксперт в этом вопросе.

Я только что попробовал это, и с настроенной безопасной медиатекой и всем остальным загрузка больших изображений работает нормально: создаются 5 оптимизированных изображений с правильной безопасностью. Изучая процесс их генерации, я задумался: не изменили ли вы настройки сайта responsive_post_image_sizes или create_thumbnails?

Появляется ли у вас Lightbox при загрузке изображения, которое слишком велико и должно быть оптимизировано? Обратите внимание, что для слишком маленьких изображений оптимизированные версии не создаются.

Привет, Мартин,

Оба параметра — responsive_post_image_sizes и create_thumbnails — установлены по умолчанию ([1, 1.5, 2] и true соответственно).

Я загрузил это изображение с разрешением 7680x4320 и вижу, что оригинал корректно сохранён в моей папке s3 /original/1x, а также есть оптимизированная версия в /optimized/1x с разрешением 1024x576. Это обнадеживает; ранее я утверждал, что изображения не создаются в /optimized/1x, но, похоже, это было неверно.

Однако при просмотре поста как на ПК, так и на мобильном устройстве, в Chrome или Firefox, я вижу, что в пост встроено изображение из /original/1x. Вот инспекция этого изображения:


(примечание: я скрыл домен моего сайта на этом скриншоте; также у меня установлено значение DISCOURSE_RELATIVE_URL_ROOT = /forum, поэтому в URL источника изображения вы видите /forum/.)

Вот что я наблюдаю. Подскажите, пожалуйста, какие следующие шаги я могу предпринять для дальнейшего отладки? Большое спасибо за помощь, @martin. Я очень ценю это.