Невозможно редактировать темы с изображениями при использовании бэкенда S3

Всем привет,

мы столкнулись со странной проблемой.

Наши настройки:

  • Discourse: 2.8.0.beta2
  • S3: Minio
  • CDN: Myra

S3 настроен следующим образом:

root@assets-prod-app01:~# sudo -u minio mc admin policy info minio readwrite-discourse
{
 "Version": "2012-10-17",
 "Statement": [
  {
   "Effect": "Allow",
   "Action": [
    "s3:ListBucketMultipartUploads",
    "s3:GetBucketLocation",
    "s3:ListBucket"
   ],
   "Resource": [
    "arn:aws:s3:::discourse"
   ]
  },
  {
   "Effect": "Allow",
   "Action": [
    "s3:*"
   ],
   "Resource": [
    "arn:aws:s3:::discourse/*"
   ]
  }
 ]
}

Однако при редактировании мы постоянно получаем следующее сообщение об ошибке:

В логах мы видим:

Aws::S3::Errors::NotImplemented (A header you provided implies functionality that is not implemented)
lib/file_store/s3_store.rb:279:in `update_ACL'
lib/file_store/s3_store.rb:209:in `update_upload_ACL'
...

Есть ли настройка, которую мы упустили, или Minio несовместим с Discourse?

Любые подсказки будут очень кстати, так как мы испытываем давление со стороны наших пользователей :frowning:

Заранее спасибо

Разве такая настройка настолько редка?

Буду признателен за указание, на что стоит обратить более пристальное внимание или что нужно изменить? @Falco На данный момент мы зашли в тупик… :frowning:

Вы включили настройку сайта secure_uploads? Это вообще не будет работать с MinIO.

Привет, @Falco,

к сожалению, нет…

Настроен ли S3 в соответствии с документацией Использование объектного хранилища для загрузки файлов (S3 и клоны)?

Да, действительно буква в букву :slight_smile:

Извините за беспокойство, но не могли бы вы что-нибудь заметить?

Привет, есть какие-нибудь идеи? Извините, что беспокою…

Привет,

Сегодня я обновился до версии 2.8.0.beta2, та же ошибка:


Просто выберите secure_media, и Minio снова заработает.

image

@pmusaraj / @martin похоже, что регрессия вызвана

который не учёл те же самые моменты, что были исправлены в

Таким образом, post_creator делает:

а models/post:

1 лайк

Уже существует исправление, выполненное по соображениям производительности, которое также должно решить вашу проблему:

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

На самом деле я не могу сделать это, так как мы хотим, чтобы загрузки постов помечались как не защищённые, если функция защищённых медиафайлов отключена или если пост был перемещён в другую категорию. Вместо этого я добавлю исправление для перехвата ошибки Aws::S3::Errors::NotImplemented при выполнении Discourse.store.update_upload_ACL(self). Таким образом, клиенты, не поддерживающие приватные ACL, не должны столкнуться с проблемами.

Редактирование: Я объединил это исправление сегодня, надеюсь, оно поможет: FIX: Handle storage providers not implementing ACLs by martin-brennan · Pull Request #13675 · discourse/discourse · GitHub. Думаю, на следующей неделе мы также выпустим новую бета-версию.

3 лайка

Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.