All Projects → abbat → Ydcmd

abbat / Ydcmd

Консольный клиент Linux/FreeBSD для работы с Яндекс.Диск (Yandex.Disk) посредством REST API

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Ydcmd

ekstertera
Linux GUI клиент для работы с Яндекс.Диск (Yandex.Disk) через REST API
Stars: ✭ 33 (-62.07%)
Mutual labels:  backup, yandex, cloud-storage
butdr
Backup to Cloud( Google Drive, Dropbox ... ) use rclone
Stars: ✭ 49 (-43.68%)
Mutual labels:  backup, yandex
Zfsbackup Go
Backup ZFS snapshots to cloud storage such as Google, Amazon, Azure, etc. Built with the enterprise in mind.
Stars: ✭ 179 (+105.75%)
Mutual labels:  cloud-storage, backup
Cloudcross
CloudCross it's opensource crossplatform software for syncronization a local files and folders with many cloud providers. On this moment a Cloud Mail.Ru, Yandex.Disk, Google drive, OneDrive and Dropbox support is available
Stars: ✭ 185 (+112.64%)
Mutual labels:  cloud-storage, yandex
PHP-Backuper
A framework which will help you to make (incremental) backups of your site.
Stars: ✭ 16 (-81.61%)
Mutual labels:  backup, cloud-storage
Taskline
Tasks, boards & notes for the command-line habitat
Stars: ✭ 78 (-10.34%)
Mutual labels:  console
Omnia
Stars: ✭ 81 (-6.9%)
Mutual labels:  console
Bareos Webui
Bareos Web User Interface
Stars: ✭ 78 (-10.34%)
Mutual labels:  backup
Hawtio
Hawtio web console helps you manage your JVM stuff and stay cool!
Stars: ✭ 1,200 (+1279.31%)
Mutual labels:  console
Cloud Media Scripts
Upload and stream media from the cloud with or without encryption. Cache all new and recently streamed media locally to access quickly and reduce API calls
Stars: ✭ 84 (-3.45%)
Mutual labels:  cloud-storage
Neko8
Fantasy console inspired by pico8, tic80 and liko12, written in c++
Stars: ✭ 83 (-4.6%)
Mutual labels:  console
Pgdump Aws Lambda
Lambda function for executing pg_dump and streaming the output to s3.
Stars: ✭ 80 (-8.05%)
Mutual labels:  backup
Yaradio Yamusic
Yandex Radio + Yandex Music desktop application ----------------------------- Неофициальное десктопное приложение для Яндекс Радио + Яндекс Музыка
Stars: ✭ 78 (-10.34%)
Mutual labels:  yandex
Panwid
A collection of widgets for urwid.
Stars: ✭ 82 (-5.75%)
Mutual labels:  console
Minecraft Wrapper
A simple & intuitive Minecraft Server wrapper. Supports IRC, backups, a plugin system, and more.
Stars: ✭ 77 (-11.49%)
Mutual labels:  backup
Yii2 Console Runner Extension
An extension for running console commands on background in Yii framework.
Stars: ✭ 83 (-4.6%)
Mutual labels:  console
Rdiffweb
A simplified backup management software for quick access to your archives through an efficient web interface.
Stars: ✭ 76 (-12.64%)
Mutual labels:  backup
Agent
The best way to backup and restore your database
Stars: ✭ 80 (-8.05%)
Mutual labels:  backup
Yandex
PHP SDK для работы с Яндекс Диском yandex disk
Stars: ✭ 82 (-5.75%)
Mutual labels:  yandex
Vue Cloudfront
vue-cloudfront - PWA for cloud storage with focus on design and performance. Made especially for self-hosting purposes. Build with vuejs2 and vuex. Always Open Source, MIT license.
Stars: ✭ 80 (-8.05%)
Mutual labels:  cloud-storage

ydcmd

English | Türk

Консольный клиент Linux/FreeBSD для работы с облачным хранилищем Яндекс.Диск посредством REST API.

Загрузка / Установка

$ git clone https://github.com/abbat/ydcmd.git
$ sudo cp ydcmd/ydcmd.py /usr/local/bin/ydcmd

Как можно помочь

  • Переведите этот документ или man-страницу на свой родной язык;
  • Исправляйте ошибки в этом документе или man-странице для своего родного языка;
  • Делитесь информацией со своими друзьями;
  • Отправляйте PR если вы разработчик.

Подготовка к работе

Для работы клиента необходимо получить OAuth токен. Для его получения используйте команду ydcmd token, или зарегистрируйте приложение на Яндексе:

  • Название - ydcmd (может быть любым)
  • Права - Яндекс.Диск REST API
  • Клиент для разработки - установить флажок

После регистрации приложения скопируйте id приложения и перейдите по ссылке:

  • https://oauth.yandex.ru/authorize?response_type=token&client_id=<id_приложения>

После разрешения доступа сервис перенаправит вас по ссылке вида:

  • https://oauth.yandex.ru/verification_code?dev=True#access_token=<токен>

Значение "токен" и есть требуемое. Подробнее можно ознакомиться по ссылке получение отладочного токена вручную.

Работа

Вывод краткой справки в консоли можно получить запуском скрипта без параметров или с командой help. Общий формат вызова:

ydcmd [команда] [опции] [аргументы]

Команды:

  • help - получение краткой справки по командам и опциям приложения;
  • ls - получение списка файлов и директорий;
  • rm - удаление файла или директории;
  • cp - копирование файла или директории;
  • mv - перемещение файла или директории;
  • put - загрузка файла или директории в хранилище;
  • get - получение файла или директории из хранилища;
  • cat - вывод файла из хранилища в stdout;
  • mkdir - создание директории;
  • stat - получение метаинформации об объекте;
  • info - получение метаинформации о хранилище;
  • last - получение метаинформации о последних загруженных файлах;
  • share - публикация объекта (получение прямой ссылки);
  • revoke - закрытие доступа к опубликованному ранее объекту;
  • du - оценка места, занимаемого файлами в хранилище;
  • clean - очистка файлов и директорий;
  • restore - восстановление файла или директории из корзины;
  • download - загрузка файла из интернета в хранилище;
  • token - получение oauth токена для работы приложения.

Опции:

  • --config=<S> - имя файла конфигурации (если отличается от файла по умолчанию);
  • --timeout=<N> - таймаут в секундах на установку сетевого соединения;
  • --retries=<N> - количество попыток вызова метода api перед возвратом кода ошибки;
  • --delay=<N> - таймаут между попытками вызова метода api в секундах;
  • --limit=<N> - количество элементов, возвращаемое одним вызовом метода получения списка файлов и директорий;
  • --token=<S> - oauth токен (в целях безопасности рекомендуется указывать в конфигурационном файле или через переменную окружения YDCMD_TOKEN);
  • --quiet - подавление вывода об ошибках, результат успеха операции определяется по коду возврата;
  • --verbose - вывод расширенной информации;
  • --debug - вывод отладочной информации;
  • --chunk=<N> - размер блока данных в КБ для операций ввода/вывода;
  • --ca-file=<S> - имя файла с сертификатами доверенных центров сертификации (при пустом значении проверка валидности сертификата не производится);
  • --ciphers=<S> - набор алгоритмов шифрования (см. ciphers(1));
  • --version - вывод версии и завершение работы.

Получение списка файлов и директорий

ydcmd ls [опции] [disk:/объект]

Опции:

  • --human - вывод размера файла в человеко-читаемом виде;
  • --short - вывод списка файлов и директорий без дополнительной информации (одно имя в одну строку);
  • --long - вывод расширенного списка (время создания, время модификации, размер, имя файла).

Если целевой объект не указан, то будет использоваться корневая директория хранилища.

Удаление файла или директории

ydcmd rm <disk:/объект>

Опции:

  • --trash - удаление в корзину;
  • --poll=<N> - время в секундах между опросом состояния при выполнении асинхронной операции;
  • --async - выполнение команды без ожидания завершения (poll) операции.

Файлы удаляются без возможности восстановления. Директории удаляются рекурсивно (включая вложенные файлы и директории).

Копирование файла или директории

ydcmd cp <disk:/объект1> <disk:/объект2>

Опции:

  • --poll=<N> - время в секундах между опросом состояния при выполнении асинхронных операций;
  • --async - выполнение команды без ожидания завершения (poll) операции.

В случае совпадения имен, директории и файлы будут перезаписаны. Директории копируются рекурсивно (включая вложенные файлы и директории).

Перемещение файла или директории

ydcmd mv <disk:/объект1> <disk:/объект2>

Опции:

  • --poll=<N> - время в секундах между опросом состояния при выполнении асинхронных операций;
  • --async - выполнение команды без ожидания завершения (poll) операции.

В случае совпадения имени, директории и файлы будут перезаписаны.

Загрузка файла в хранилище

ydcmd put <файл> [disk:/объект]

Опции:

  • --rsync - синхронизация дерева файлов и директорий в хранилище с локальным деревом;
  • --no-recursion - не загружать содержимое вложенных директорий;
  • --no-recursion-tag=<S> - не загружать содержимое вложенных директорий, для директорий содержащих файл;
  • --exclude-tag=<S> - пропускать загрузку директорий, содержащих файл;
  • --skip-hash - пропускать проверки целостности md5/sha256;
  • --threads=<N> - количество рабочих процессов;
  • --iconv=<S> - при необходимости пытаться восстанавливать имена файлов и директорий из указанной кодировки (например, --iconv=cp1251);
  • --progress - выводить прогресс операции (рекомендуется установить модуль python-progressbar).

Если целевой объект не указан, то для загрузки файла будет использоваться корневая директория хранилища. Если целевой объект указывает на директорию (заканчивается на /), то к имени директории будет добавлено имя исходного файла. Если целевой объект существует, то он будет перезаписан без запроса подтверждения. Символические ссылки игнорируются.

Получение файла из хранилища

ydcmd get <disk:/объект> [файл]

Опции:

  • --rsync - синхронизация локального дерева файлов и директорий с деревом в хранилище;
  • --no-recursion - не загружать содержимое вложенных директорий;
  • --skip-hash - пропускать проверки целостности md5/sha256;
  • --threads=<N> - количество рабочих процессов;
  • --progress - выводить прогресс операции (рекомендуется установить модуль python-progressbar).

Если не указано имя целевого файла, будет использовано имя файла в хранилище. Если целевой объект существует, то он будет перезаписан без запроса подтверждения.

Вывод файла из хранилища в stdout

ydcmd cat <disk:/объект>

Создание директории

ydcmd mkdir <disk:/путь>

Получение метаинформации об объекте

ydcmd stat [disk:/объект]

Если целевой объект не указан, то будет использоваться корневая директория хранилища.

Получение метаинформации о хранилище

ydcmd info

Опции:

  • --long - отображать размеры в байтах вместо человеко-читаемого вида.

Получение метаинформации о последних загруженных файлах

ydcmd last [N]

Опции:

  • --human - вывод размера файла в человеко-читаемом виде;
  • --short - вывод списка файлов без дополнительной информации (одно имя в одну строку);
  • --long - вывод расширенного списка (время создания, время модификации, размер, файл).

Если параметр N не задан, будет использовано значение по умолчанию из REST API.

Публикация объекта

ydcmd share <disk:/объект>

Команда возвращает имя объекта в хранилище и ссылку на него.

Закрытие доступа

ydcmd revoke <disk:/объект>

Оценка занимаемого места

ydcmd du [disk:/объект]

Опции:

  • --depth=<N> - отображать размеры директорий до уровня N;
  • --long - отображать размеры в байтах вместо человеко-читаемого вида.

Если целевой объект не указан, то будет использоваться корневая директория хранилища.

Очистка файлов и директорий

ydcmd clean <опции> [disk:/объект]

Опции:

  • --dry - не выполнять удаление, а вывести список объектов для удаления;
  • --type=<S> - тип объектов для удаления (file - файлы, dir - директории, all - все);
  • --keep=<S> - критерий выборки объектов, которые требуется сохранить:
    • Для выбора даты до которой требуется удалить данные, можно использовать строку даты в формате ISO (например, 2014-02-12T12:19:05+04:00);
    • Для выбора относительного времени, можно использовать число и размерность (например, 7d, 4w, 1m, 1y);
    • Для выбора количества копий, можно использовать число без размерности (например, 31).

Если целевой объект не указан, то будет использоваться корневая директория хранилища. Сортировка и фильтрация объектов производится по дате модификации (не по дате создания).

Восстановление файла или директории из корзины

ydcmd restore <trash:/объект> [имя]

Опции:

  • --poll=<N> - время в секундах между опросом состояния при выполнении асинхронных операций;
  • --async - выполнение команды без ожидания завершения (poll) операции.

В случае совпадения имен, директории и файлы будут перезаписаны. Директории восстанавливаются рекурсивно (включая вложенные файлы и директории).

Загрузка файла из интернета в хранилище

ydcmd download <URL> [disk:/объект]

Опции:

  • --poll=<N> - время в секундах между опросом состояния при выполнении асинхронных операций;
  • --async - выполнение команды без ожидания завершения (poll) операции;
  • --no-redirects - запрещение редиректов при загрузке.

Если целевой объект не указан, то будет использоваться корневая директория хранилища, а имя файла будет выбрано исходя из содержимого URL (если это возможно).

Получение OAuth токена

ydcmd token [код]

Без указания аргумента команда выведет ссылку для получения кода. Откройте ссылку в браузере, разрешите доступ приложению и используйте полученный код как аргумент для получения OAuth токена.

Конфигурация

Для удобства работы рекомендуется создать конфигурационный файл с именем ~/.ydcmd.cfg и установить на него права 0600 или 0400. Формат файла:

[ydcmd]
# комментарий
<option> = <value>

Например:

[ydcmd]
token   = 1234567890
verbose = yes
ca-file = /etc/ssl/certs/ca-certificates.crt

Переменные окружения

  • YDCMD_TOKEN - oauth токен, имеет приоритет перед опцией --token;
  • SSL_CERT_FILE - имя файла с сертификатами доверенных центров сертификации, имеет приоритет перед опцией ca-file.

Код выхода

При работе в автоматическом режиме (по cron) может быть полезно получить результат выполнения команды:

  • 0 - успешное завершение;
  • 1 - общая ошибка приложения;
  • 4 - код состояния HTTP-4xx (ошибка клиента);
  • 5 - код состояния HTTP-5xx (ошибка сервера).
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].