Близько 5 хв
Як вивантажувати файли в Cloudflare R2 і ділитися посиланнями
Cloudflare R2 чудово підходить для Aktar: без плати за вихідний трафік, з безплатним тарифом, якого вистачає для більшості знімків екрана, і з власними доменами, які обслуговує мережа Cloudflare. Aktar має окремий шаблон для R2, тож вам потрібні лише ID облікового запису, API-токен і бакет.
Що знадобиться
- Обліковий запис Cloudflare з увімкненим R2
- Домен у Cloudflare, якщо ви хочете посилання на власному домені (необов’язково)
- Aktar, установлений на вашому Mac
Крок за кроком
- 1
Створіть бакет
У панелі Cloudflare відкрийте R2 Object Storage і натисніть Create bucket. Виберіть коротку назву, наприклад
screenshots, і залиште автоматичне розташування. - 2
Дайте бакету публічну адресу
Відкрийте Settings бакета. У розділі Custom Domains під’єднайте домен або піддомен, яким ви керуєте в Cloudflare, наприклад
files.example.com. Це найкращий варіант для реального використання.Для швидкої перевірки можна натомість увімкнути Public Development URL (
pub-….r2.dev). Cloudflare обмежує кількість запитів до цієї адреси й не рекомендує її для робочого використання. - 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
Додайте ціль в Aktar
Відкрийте в Aktar Параметри → Цілі → Додати ціль, виберіть Cloudflare R2 і заповніть поля за таблицею нижче. Aktar визначає кінцеву точку за ID облікового запису.
- 5
Перевірте й збережіть
Натисніть Перевірити з’єднання. Aktar вивантажить крихітний тестовий файл, перевірить, що він доступний за вашою публічною адресою, і знову його видалить. Коли все зелене, натисніть Зберегти й перетягніть перший файл на іконку в смузі меню.
Параметри в Aktar
Введіть ці значення в розділі Параметри → Цілі → Додати ціль. Назви полів збігаються з програмою.
| Поле | Приклад значення |
|---|---|
| Провайдер | Cloudflare R2 |
| Назва профілю | PersonalБудь-яка назва на ваш смак. |
| ID облікового запису | 3f9a71c0e2b8…Зі сторінки огляду R2. |
| Регіон | autoЗалиште стандартне значення. |
| Access Key ID | a1b2c3d4…З 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.