← Cloudflare R2 / r2 / get-started
CLI
Управляйте бакетами и объектами R2 прямо из терминала. Используйте инструменты CLI для автоматизации задач и управления объектами.
| Инструмент | Подходит для |
|---|---|
| Wrangler | Операции с отдельными объектами и управление настройками бакета при минимальной настройке |
| rclone | Массовые операции с объектами, миграции и синхронизация каталогов |
| AWS CLI | Существующие рабочие процессы AWS или знакомство с AWS CLI |
1. Создать бакет
Бакет хранит ваши объекты в R2. Чтобы создать новый бакет R2:
-
Войдите в свою учётную запись Cloudflare:
npx wrangler login -
Создайте бакет с именем
my-bucket:npx wrangler r2 bucket create my-bucketЕсли появится запрос, выберите аккаунт, в котором нужно создать бакет.
-
Убедитесь, что бакет создан:
npx wrangler r2 bucket list
-
В панели управления Cloudflare перейдите в Объектное хранилище R2.
Перейдите в Обзор ↗ -
Выберите Создание бакета.
-
Введите имя своего бакета.
-
Выберите расположение для вашего бакета и класс хранения по умолчанию.
-
Выберите Создание бакета.
2. Сгенерировать учётные данные API
Инструменты командной строки, использующие S3 API (AWS CLI, rclone) требуют Access Key ID и Secret Access Key. Если вы используете Wrangler, можете пропустить этот шаг.
- В панели управления Cloudflare перейдите в R2.
- Выберите Управление API-токенами R2.
- Выберите Создание API-токена.
- Выберите Object Read & Write разрешение и выберите бакеты, к которым нужен доступ.
- Выберите Создать API-токен.
- Скопируйте Access Key ID и Secret Access Key. Храните их в надёжном месте: повторно просмотреть секрет будет невозможно.
3. Настроить инструмент CLI
Wrangler представляет собой CLI для Cloudflare Workers. Он выполняет аутентификацию напрямую в вашем аккаунте Cloudflare, поэтому учётные данные API не нужны.
-
Установка Wrangler:
npm i -D wrangler -
Войдите в свою учётную запись Cloudflare:
wrangler login
rclone идеально подходит для массовой загрузки, миграций и синхронизации каталогов.
-
Установите rclone ↗ (версии 1.59 или новее).
-
Настройте новый remote:
rclone config -
Создайте новый remote, выбрав
n. -
Присвойте имя удалённому хранилищу
r2 -
Выберите Поставщики хранилища, совместимые с Amazon S3 в качестве типа хранилища.
-
Выберите Cloudflare R2 в качестве провайдера.
-
Выберите, хотите ли вы ввести учётные данные AWS вручную или получить их из среды выполнения.
-
Введите Access Key ID и Secret Access Key, когда система их запросит.
-
Выберите регион для подключения (необязательно).
-
Укажите конечную точку S3 API.
AWS CLI работает с R2 благодаря указанию пользовательской конечной точки.
-
Установите AWS CLI ↗ для вашей операционной системы.
-
Настройте учётные данные:
aws configure -
Когда появится запрос, введите:
- AWS Access Key ID: ваш R2 Access Key ID
- AWS Secret Access Key: ваш R2 Secret Access Key
- Имя региона по умолчанию:
auto - Формат вывода по умолчанию:
json(или нажмите Enter, чтобы пропустить)
4. Загрузка и скачивание объектов
(Необязательно) Создайте тестовый файл для загрузки. Выполните эту команду в каталоге, где вы планируете запускать команды CLI:
echo 'Hello, R2!' > myfile.txt# Upload myfile.txt to my-bucket
wrangler r2 object put my-bucket/myfile.txt --file ./myfile.txt
# Download myfile.txt and save it as downloaded.txt
wrangler r2 object get my-bucket/myfile.txt --file ./downloaded.txtСм. Команды Wrangler для R2 для всех доступных операций.
# Upload myfile.txt to my-bucket
rclone copy myfile.txt r2:my-bucket/
# Download myfile.txt from my-bucket to the current directory
rclone copy r2:my-bucket/myfile.txt .См. документация rclone для дополнительных параметров конфигурации.
# Upload myfile.txt to my-bucket
aws s3 cp myfile.txt s3://my-bucket/ --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com
# Download myfile.txt from my-bucket to current directory
aws s3 cp s3://my-bucket/myfile.txt ./ --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com
# List all objects in my-bucket
aws s3 ls s3://my-bucket/ --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.comСм. Документация AWS CLI для дополнительных примеров.