Перед началом

PicList уже хорошо работает с Cloudflare R2, но при первой настройке всё ещё есть несколько моментов, в которых легко ошибиться:

  • полей довольно много, и значение легко вписать не туда;
  • отдельной кнопки проверки соединения для этой схемы нет;
    • поэтому самый надёжный способ проверить настройки — действительно загрузить изображение.

В этой статье пошагово показано, как подключить PicList к Cloudflare R2 и использовать его как быстрый фотохостинг с собственным доменом и CDN.

Если бакет R2 ещё не создан, можно также воспользоваться этой инструкцией:

Версия PicList в этой статье: v3.5.0 (июль 2026 года).


Недавно я перенёс изображения блога в Cloudflare R2 и использую его вместе с PicList. Результат получился очень удачным.

Преимущества:

✅ Бесплатно ✅ Стабильно ✅ Быстро ✅ Собственный домен ✅ Глобальный CDN ✅ Без нагрузки на VPS


Настройка PicList

  • Хостинг изображений: используется для загрузки изображений
  • Облако: используется PicList для доступа к bucket в Cloudflare

Настройка хостинга изображений

В левом меню откройте Хостинг изображений → AWS S3 → Добавить конфигурацию:

Обязательные поля

● Имя конфигурации: любое
● AccessKeyId: 18e1************************c0858
● secretAccessKey: c8a3********************************************************fa6e
● Пользовательский endpoint: https://770*************************39d8.r2.cloudflarestorage.com

Все эти данные можно получить здесь: снимок API.

  • Права: чтение и запись администратора (иначе облачный доступ PicList не сработает).
  • Учётные данные показываются только один раз. Сохраните их, иначе придётся создавать заново.

● Bucket: у меня это hexo-img. Снимок


Необязательные поля

■ Путь загрузки: / (корневой каталог)

Я храню файлы в каталоге img, поэтому использую /img/. Снимок

● Пользовательский домен: https://img.weigshare.com/
(Его можно настроить после привязки домена. После этого загруженные изображения будут получать ссылки с этим доменом.) Снимок

https://img.weigeshare.com/img/x.png

☐ Если домен не настроен, может получиться такая ссылка, которая иногда не открывается напрямую:

https://770*************************39d8.r2.cloudflarestorage.com/img/0.%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202026-07-08%20181820.png

☐ Region: auto (или us-east-1)

  • Политика доступа к загруженному объекту: public-read (официальная рекомендация)

Настройка облака

В левом меню откройте Облако → S3 API → Добавить конфигурацию → Сохранить:

Обязательные поля

● Имя конфигурации: любое
● Access Key Id: 18e1************************c0858
● Access Key Secret: c8a3********************************************************fa6e
● endpoint / пользовательский endpoint: https://770*************************39d8.r2.cloudflarestorage.com

API-токен можно получить здесь: API.

  • Права: чтение и запись администратора (иначе облачный доступ PicList не сработает).

● Имя bucket: hexo-img. Снимок

■ Начальный каталог: /

Необязательные поля

■ Права загружаемого файла: public-read (публичное чтение, официальная рекомендация)


Частые вопросы

Загрузка проходит успешно, но изображение не открывается

Проверьте:

  • разрешён ли публичный доступ к Bucket;
  • привязан ли пользовательский домен;
  • вступили ли в силу DNS-записи.

Ошибка AccessDenied

Проверьте:

  • правильность Access Key ID;
  • правильность Secret Access Key;
  • наличие у API Token прав на чтение и запись.

Ошибка SignatureDoesNotMatch

Проверьте:

  • правильно ли указан Endpoint.

Итог

Текущий стек моего блога:

Hexo + Butterfly + Github + Cloudflare R2 + Cloudflare CDN

Если вам нужен стабильный долгосрочный хостинг изображений для блога, связка PicList + Cloudflare R2 определённо заслуживает внимания.