dirien
(Engin Diri)
14.Июнь.2021 05:45:26
1
Всем привет,
мы столкнулись со странной проблемой.
Наши настройки:
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?
Любые подсказки будут очень кстати, так как мы испытываем давление со стороны наших пользователей
Заранее спасибо
dirien
(Engin Diri)
22.Июнь.2021 04:24:49
2
Разве такая настройка настолько редка?
Буду признателен за указание, на что стоит обратить более пристальное внимание или что нужно изменить? @Falco На данный момент мы зашли в тупик…
Falco
(Falco)
22.Июнь.2021 16:55:40
3
Вы включили настройку сайта secure_uploads? Это вообще не будет работать с MinIO.
Falco
(Falco)
22.Июнь.2021 21:01:26
5
dirien
(Engin Diri)
23.Июнь.2021 04:44:10
6
Да, действительно буква в букву
dirien
(Engin Diri)
01.Июль.2021 05:03:59
7
Извините за беспокойство, но не могли бы вы что-нибудь заметить?
dirien
(Engin Diri)
08.Июль.2021 05:32:39
8
Привет, есть какие-нибудь идеи? Извините, что беспокою…
Привет,
Сегодня я обновился до версии 2.8.0.beta2, та же ошибка:
Просто выберите secure_media, и Minio снова заработает.
Falco
(Falco)
08.Июль.2021 15:50:52
10
@pmusaraj / @martin похоже, что регрессия вызвана
master ← issue/update-upload-secure-status-on-post-revision
merged 03:32AM - 21 May 21 UTC
When uploads are created from the composer (editing or creating a post),
for si… tes with secure uploads enabled we assume security by default and
that new upload is set to secure. When the post is created, we then
check whether the post uploads _actually_ need to be secure and adjust
accordingly.
We were not doing this when revising a post, so when a new upload was
created when editing a post in a public topic, the secure status stayed
true erroneously causing issues with image previews, among other things.
который не учёл те же самые моменты, что были исправлены в
committed 04:20PM - 25 Nov 19 UTC
In `post_creator`, the ACL update is only necessary when uploads need to be secu… red.
This should fix a regression with S3 clones that do not support updating ACLs.
Таким образом, post_creator делает:
а models/post:
"topic_tag_changed.added_and_removed",
added: tag_list_to_raw(added),
removed: tag_list_to_raw(removed),
)
elsif added.present?
I18n.t("topic_tag_changed.added", added: tag_list_to_raw(added))
elsif removed.present?
I18n.t("topic_tag_changed.removed", removed: tag_list_to_raw(removed))
end
end
def self.tag_list_to_raw(tag_list)
tag_list.sort.map { |tag_name| "##{tag_name}" }.join(", ")
end
# Revises a post with the given fields and options.
#
# @param editor [User] The user performing the revision
# @param fields [Hash] Hash of fields to update
# @param opts [Hash] Optional parameters for the revision
# @option opts [Time] :revised_at Changes the date of the revision
1 лайк
martin
(Martin Brennan)
09.Июль.2021 00:18:12
12
Уже существует исправление, выполненное по соображениям производительности, которое также должно решить вашу проблему:
committed 04:15PM - 21 Jun 21 UTC
When secure uploads are enabled, editing a post with many uploads can
cause a t… imeout because the store has to be contacted for each upload.
Хотя я планирую внести исправление в задачу, чтобы она завершалась досрочно, если защищённые медиафайлы отключены.
На самом деле я не могу сделать это, так как мы хотим, чтобы загрузки постов помечались как не защищённые, если функция защищённых медиафайлов отключена или если пост был перемещён в другую категорию. Вместо этого я добавлю исправление для перехвата ошибки 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 лайка
Falco
(Falco)
Закрыл(а) тему
12.Июль.2021 11:00:46
13
Эта тема была автоматически закрыта через 3 дня. Новые ответы больше не принимаются.