Не удалось загрузить в S3 (Cloudflare R2)

Я настраивал R2 на своём сайте, следуя некоторым руководствам здесь, но теперь при попытке загрузки файла я вижу только общее сообщение: «Sorry, but your upload failed. Please try again.» В логах я вижу только следующее:

Я настроил свои URL в файле app.yml, потому что веб-интерфейс отклонял мои URL, оформленные так, как указано в постах с инструкциями (неверный формат):

image

CDN_URL — это пользовательский домен (настроенный в Cloudflare), а S3_ENDPOINT — это URL в веб-панели. Все мои параметры настроены правильно, с корректно созданными токенами авторизации:

Кажется, Cloudflare видит некоторые запросы, но ничего не сохраняется.

В чём проблема?

Привет,

Разве дело не в конечных слэшах (/) в URL S3 CDN и в конечной точке S3?

Это те руководства, которым вы следовали? Вы уверены, что имя вашего бакета для загрузки — «discourse»?

Да, я следовал первому.

Верно.

Я попробую удалить косые черты и сообщу о результатах.

Я убрал конечные косые черты, но это не помогло. Та же ошибка Unauthorized.

Токен тоже настроен правильно

Вы уверены, что токен Cloudflare R2 имеет разрешения на чтение и запись, и что политика CORS настроена правильно? Я знаю, что у вас довольно уникальная конфигурация сервера, и разрешения и настройки бакета Cloudflare должны быть абсолютно верными, иначе возникнут ошибки доступа.

вы создали токен неверного типа — у вас общий API-токен. Вам нужно создать токен для бакета R2:

  1. Перейдите в панель управления Cloudflare → R2 Object Storage (в левой боковой панели в разделе Storage & Databases).
  2. На правой стороне страницы обзора R2 нажмите Manage (API tokens).
  3. Нажмите Create Account API Token.
  4. Введите подходящее имя токена и установите права доступа Object Read & Write, затем нажмите Save.
  5. Будут сгенерированы Access Key ID и Secret Access Key. Именно их нужно вставить в конфигурацию S3 в Discourse.

И да, вам нужно удалить конечные символы слэша, так как Discourse, скорее всего, отклонит их.

Спасибо, оказывается, проблема была в этом. Заведомо запутанное решение, но это вина Cloudflare.

Да, панель управления Cloudflare может быть настоящим ульем настроек, ха-ха. Рад, что вы всё исправили!