Привет, @mcwumbly. Это было очень легко найти, когда я искал «S3 clone». Сейчас я не могу его найти. Была ли проблема с этим заголовком? Есть ли поиск, который его найдет? Можем ли мы добавить что-то (не помню, как это называется), чтобы оно автоматически ссылалось на некоторые слова, как это делает стандартная установка (но я не могу придумать, какие слова использовать).
Как человек, который ссылается на эти темы несколько раз в неделю, я в какой-то мере согласен ![]()
Может быть, добавление «s3 clones» в тело первого поста поможет поиску?
Я заметил, что в интернете чаще встречается выражение «S3-совместимый», поэтому я изменил его во время общей проверки заголовков документации, например: S3 API Compatibility | MinIO AIStor
Однако я считаю, что предложение добавить другие поисковые запросы в текст первого сообщения (OP) имеет смысл. (Я только что добавил их в этот пост).
Выглядит нормально. Думаю, нам придется подстраиваться под изменения. ![]()
Да. Это действительно не так уж сложно. У вас получится, @pfaffman!
Привет, удалось ли кому-нибудь настроить объектное хранилище Contabo для совместимых с S3 загрузок? Похоже, что при загрузке имя репозитория добавляется как префикс в URL.
Например, если у вас есть бакет с именем community, создается URL вида https://community.eu2.contabostorage.com.
Я наблюдал такое поведение, например, в Duplicati, но можно исключить ситуацию, когда имя бакета добавляется в домен.
Буду признателен, если кто-то знает решение, позволяющее использовать это объектное хранилище, так как у него очень хорошие цены.
Я провёл несколько тестов по настройке домена как CNAME в моём домене через Cloudflare для обеспечения SSL, но для community.cdn.midominio.com SSL-сертификат больше не действует, так как они используют wildcard-сертификат. Если же я отключаю прокси Cloudflare, возникает ошибка, поскольку сертификат считается некорректным.
С уважением,
Вы пробовали установить настройку CDN S3 на https://community.eu2.contabostorage.com? На мой взгляд, это сработает.
Не существует, это конечная точка Contabo eu2.contabostorage.com
Да, но какой будет финальный URL файла в бакете?
Он имеет в виду, что если вы загрузите файл в бакет самостоятельно (используя любой доступный инструмент для загрузки файла), какой URL-адрес вы будете использовать для доступа к файлу?
https://eu2.contabostorage.com/9198f3bf2d6e43dd86fab037ebad3aee:comunidad/castopod-1.png
Структура следующая:
Хост: https://eu2.contabostorage.com/
Пользователь: 9198f3bf2d6e43dd86fab037ebad3aee
Ведро: comunidad
Файл: castopod-1.png
Это не рабочий URL. Но, думаю, он может стать рабочим, если заменить двоеточие на слэш?
Ты описывал это иначе в своём первом сообщении, так что, возможно, теперь он сможет предложить ещё что-то.
Попробуйте установить
DISCOURSE_S3_CDN_URL: "https://eu2.contabostorage.com/9198f3bf2d6e43dd86fab037ebad3aee:comunidad"
и пересобрать.
R2 от Cloudflare наконец-то стал общедоступным (как выяснилось, на это ушло всего лишь год). (Вот оригинальное объявление: Announcing Cloudflare R2 Storage: Rapid and Reliable Object Storage, minus the egress fees)
Я создал бакет.
Я создал токен со следующими правами: «Редактирование: разрешить редактирование всех объектов, а также операции перечисления, записи и удаления для всех бакетов».
Вот что я пробовал:
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: auto
DISCOURSE_S3_ACCESS_KEY_ID: redacted
DISCOURSE_S3_SECRET_ACCESS_KEY: redacted
DISCOURSE_S3_CDN_URL: https://pub-72eaa03782c542edbe00598fd1666be1.r2.dev
DISCOURSE_S3_BUCKET: lc-testing
DISCOURSE_S3_BACKUP_BUCKET: lc-testing/backups
DISCOURSE_BACKUP_LOCATION: s3
DISCOURSE_S3_ENDPOINT: https://cb46accbfcc3db1bdbba2bce07f8b509.r2.cloudflarestorage.com
DISCOURSE_S3_INSTALL_CORS_RULE: false
DISCOURSE_S3_CONFIGURE_TOMBSTONE_POLICY: false
FORCE_S3_UPLOADS: 1
Однако загрузка ресурсов завершается ошибкой:
Aws::S3::Errors::NotImplemented: Header 'x-amz-acl' со значением 'public-read' не реализован
Затем я вспомнил о необходимости сделать бакет общедоступным, как описано здесь: Public buckets · Cloudflare R2 docs
Но это всё равно не помогло.
На странице S3 API compatibility · Cloudflare R2 docs указано, что заголовок x-amz-acl не поддерживается.
Беглый взгляд на код Discourse не позволяет однозначно сказать, что возможно заставить R2 работать без изменений в ядре.
После отключения загрузки резервные копии создаются успешно, так что R2 оказывается очень дешёвым решением для хранения резервных копий S3. Однако, поскольку я сделал этот бакет общедоступным, резервная копия также стала публичной (если угадать имя файла). Поэтому, если проблема будет решена, вам понадобятся отдельные бакеты для резервных копий и для загрузки ресурсов.
Я удалил эту строку и смог убедиться, что файл был загружен, а также получить к нему доступ через пользовательский домен, указанный в параметре s3_cdn_url. (Аналогичное изменение в задаче rake для S3 позволяет загружать ресурсы.)
Похоже, нам стоит добавить это в ОП как несовместимое, пока они не реализуют ACL на уровне объектов. Спасибо, что попробовали!
Да. Необходимые изменения в ядре, чтобы разрешить ему пропускать установку ACL, выглядят довольно запутанно. Можно сказать, что это допустимо только для резервных копий. Если вы не предпринимаете лишних усилий, чтобы сделать бакет общедоступным, всё должно быть в порядке.
Я только что протестировал R2, но, похоже, они не учитывают нашу информацию «Content-Encoding», хотя в их документации указано, что будут. Возможно, через год это станет рабочим вариантом.
Это требует добавления предупреждающего сообщения в разделы MinIO или общие разделы. Необходимо разместить уведомление следующего содержания: «Discourse использует DNS-режим для путей в системах хранения, совместимых с S3. Если бэкенд поддерживает только режим путей, но не DNS-режим для путей к ведрам, то он несовместим с Discourse». Именно поэтому MinIO изначально отсутствовал в списке, а позже был добавлен.
Также необходимо обновить раздел «Сервер хранения MinIO»: в пункте №2 нужно указать следующее:
- В конфигурации MinIO для путей к ведрам, управляемых доменом, должна быть включена поддержка доменов. Это обязательно, так как Discourse не поддерживает пути к ведрам, управляемые не доменом, при использовании механизмов хранения S3.
РЕДАКТИРОВАНИЕ: Похоже, что благодаря этому посту я получил статус участника (уровень доверия 2), поэтому теперь могу редактировать пост в вики. Действий от модераторов не требуется, хотя я и просил их внести правки.
Здорово! Спасибо за помощь в поддержании актуальности информации. Это именно то предупреждение, которое я с радостью бы увидел.
![]()


