Близько 5 хв

Як вивантажувати файли в Cloudflare R2 і ділитися посиланнями

Cloudflare R2 чудово підходить для Aktar: без плати за вихідний трафік, з безплатним тарифом, якого вистачає для більшості знімків екрана, і з власними доменами, які обслуговує мережа Cloudflare. Aktar має окремий шаблон для R2, тож вам потрібні лише ID облікового запису, API-токен і бакет.

Що знадобиться

  • Обліковий запис Cloudflare з увімкненим R2
  • Домен у Cloudflare, якщо ви хочете посилання на власному домені (необов’язково)
  • Aktar, установлений на вашому Mac

Крок за кроком

  1. 1

    Створіть бакет

    У панелі Cloudflare відкрийте R2 Object Storage і натисніть Create bucket. Виберіть коротку назву, наприклад screenshots, і залиште автоматичне розташування.

  2. 2

    Дайте бакету публічну адресу

    Відкрийте Settings бакета. У розділі Custom Domains під’єднайте домен або піддомен, яким ви керуєте в Cloudflare, наприклад files.example.com. Це найкращий варіант для реального використання.

    Для швидкої перевірки можна натомість увімкнути Public Development URL (pub-….r2.dev). Cloudflare обмежує кількість запитів до цієї адреси й не рекомендує її для робочого використання.

  3. 3

    Створіть API-токен

    Поверніться на сторінку огляду R2, відкрийте Manage API tokens і створіть токен із дозволом Object Read & Write, обмежений вашим бакетом. Скопіюйте Access Key ID і Secret Access Key: секретний ключ показується лише один раз.

    Ваш Account ID показано на тій самій сторінці, і він же є першою частиною кінцевої точки S3 https://<ACCOUNT_ID>.r2.cloudflarestorage.com.

  4. 4

    Додайте ціль в Aktar

    Відкрийте в Aktar Параметри → Цілі → Додати ціль, виберіть Cloudflare R2 і заповніть поля за таблицею нижче. Aktar визначає кінцеву точку за ID облікового запису.

  5. 5

    Перевірте й збережіть

    Натисніть Перевірити з’єднання. Aktar вивантажить крихітний тестовий файл, перевірить, що він доступний за вашою публічною адресою, і знову його видалить. Коли все зелене, натисніть Зберегти й перетягніть перший файл на іконку в смузі меню.

Параметри в Aktar

Введіть ці значення в розділі Параметри → Цілі → Додати ціль. Назви полів збігаються з програмою.

ПолеПриклад значення
ПровайдерCloudflare R2
Назва профілюPersonalБудь-яка назва на ваш смак.
ID облікового запису3f9a71c0e2b8…Зі сторінки огляду R2.
РегіонautoЗалиште стандартне значення.
Access Key IDa1b2c3d4…З API-токена R2.
Secret Access Key••••••••Зберігається у Зв’язці ключів macOS.
Бакетscreenshots
Публічна базова URL-адресаfiles.example.comВаш власний домен або URL-адреса r2.dev.
Шлях об’єкта{year}/{month}/{uuid}.{ext}Необов’язково, див. назви файлів і папки.

Поради

  • Обмежте API-токен одним бакетом, який використовує Aktar. Якщо токен колись витече, більше нічого не буде відкрито.
  • Власний домен кешує Cloudflare, тож популярні посилання швидко завантажуються в усьому світі без додаткових витрат.
  • Хочете впорядковані папки? Змініть шлях об’єкта, наприклад на shots/{date}/{filename}-{random}.{ext}. Див. назви файлів і папки.
  • Хочете, щоб вивантаження видалялися самі через 1-30 днів? З токеном Admin Read & Write Aktar сам додасть правила життєвого циклу бакета. З токеном Object Read & Write додайте їх самостійно в розділі Object Lifecycle Rules у Settings бакета. Див. тимчасові вивантаження.

Усунення проблем

Посилання повертає Access Denied або 403

Переконайтеся, що Публічна базова URL-адреса - це ваш власний домен або URL-адреса r2.dev. Кінцева точка …r2.cloudflarestorage.com призначена лише для API й ніколи не роздає публічні файли. Докладніше в статті Помилки Access Denied.

«Перевірити з’єднання» повідомляє, що облікові дані недійсні

Використовуйте Access Key ID і Secret Access Key з API-токена R2, а не звичайний API-токен Cloudflare чи Global API Key. Перевірте, що в ID облікового запису немає зайвих пробілів.

Вивантаження працюють, але посилання повільні або обмежені за кількістю запитів

Найімовірніше, ви використовуєте URL-адресу для розробки r2.dev. Для робочого використання під’єднайте власний домен.

Досі не виходить?Перегляньте часті запитання або запитайте на GitHub.