sancho2804/yandex_disk
Composer 安装命令:
composer require sancho2804/yandex_disk
包简介
Yandex Disk Sync
README 文档
README
На работе была дана задача: синхронизировать файлы с локального сервера с яндекс диском. После утановки и шаманства со стандартной программой от Яндекс для debian, ничего не вышло. Файлов много - около 700.000. Яндекс не мог стартовать, чтобы начать синхронизацию. Было принято решение написать скрипт на PHP, который мог бы выполнить поставленную задачу. Скрипт написан и выполнил задачу. Для этого я его поставил в CRON с периодом в час. Если у вас возникли подобные проблемы, то предлагаю использовать мое решение.
Установка:
Устанавливаем через composer:
composer require sancho2804/yandex_disk
Подключаем библиотеку и создаем объект класса:
include_once 'vendor/autoload.php'; use sancho2804\yandex_disk; //Используем namespace. $yandex_disk=new yandex_disk\init($token[,'/files/www/yandex_disk']);
Аргументы
- Токен от Яндекс OAuth.
- Абсолютный путь до папки, которую необходимо закачать.
Доступные свойства:
string yandex_disk::error
Содержит последнее сообщение об ошибке. Доступно только на чтение.
string yandex_disk::start_path
Содержит начальную директорию сканирования.
Доступные методы:
yandex_disk::get_space(string $unit='gb'):array
Возвращает использованное, свободное и сколько всего места на диске.
Аргументы:
- string $unit - единицы измерения возвращаемых значений (b,kb,mb,gb,tb).
Возвращаемые значения:
$result=[ 'total', //сколько всего места на диске. 'used', //использовано места. 'free', //свободно места. 'trash' //занято корзиной. ];
Пример:
$result=$yandex_disk->get_space('gb'); var_dump($result);
yandex_disk::add_skip_dirs(array $dirs):bool
Добавляет папки в список игнорируемых. Пути передаются в массиве относительно от начальной директории сканирования. В этом примере /files/www/yandex_disk/ + передаваемая папка.
Аргументы:
- array $dirs - массив относительных путей.
Возвращаемые значения:
$result=true; //Если передаваемый массив добавлен. $result=false; //Если массив пустой, или добавляемые папки уже есть в игнорируемых.
Пример:
$result=$yandex_disk->add_skip_dirs(['.vscode','vendor']); var_dump($result); //будут игнорироваться при сканировании. //files/www/yandex_disk/.vscode //files/www/yandex_disk/vendor
yandex_disk::add_skip_dirs_by_name(array $names):bool
Добавляет имена папок в список игнорируемых. Если такая папка встретится где либо в сканируемой директории, она будет пропущена.
Аргументы:
- array $names - массив имен папок.
Возвращаемые значения:
$result=true; //Если передаваемый массив добавлен. $result=false; //Если массив пустой, или добавляемые папки уже есть в игнорируемых.
Пример:
$result=$yandex_disk->add_skip_dirs_by_name(['.git']); var_dump($result); //будут игнорироваться при сканировании. //files/www/yandex_disk/.git //files/www/yandex_disk/.../.../.git
yandex_disk::add_skip_files(array $files):bool
Добавляет файлы в список игнорируемых. Пути передаются в массиве относительно от начальной директории сканирования. В этом примере /files/www/yandex_disk/ + передаваемый файл.
Аргументы:
- array $files - массив путей до файлов.
Возвращаемые значения:
$result=true; //Если передаваемый массив добавлен. $result=false; //Если массив пустой, или добавляемые файлы уже есть в игнорируемых.
Пример:
$result=$yandex_disk->add_skip_files(['.gitignore']); var_dump($result); //будет игнорироваться при сканировании. //files/www/yandex_disk/.gitignore
yandex_disk::add_skip_files_by_name(array $names):bool
Добавляет имена файлов в список игнорируемых. Если такой файл встретится где либо в сканируемой директории, он будет пропущен.
Аргументы:
- array $names - массив имен файлов.
Возвращаемые значения:
$result=true; //Если передаваемый массив добавлен. $result=false; //Если массив пустой, или добавляемые файлы уже есть в игнорируемых.
Пример:
$result=$yandex_disk->add_skip_files_by_name(['.ds_store']); var_dump($result); //будет игнорироваться при сканировании. //files/www/yandex_disk/.ds_store //files/www/yandex_disk/.../.../.ds_store
yandex_disk::sync(string $path=null, string $start_path_on_disk='/'):mixed
Закачивает папку от начальной директории сканирования на яндекс диск, если передан первый аргумент. Если он пропущен, то закачивается вся папка начальной директории сканирования, учитывая различные виды игнорирования.
Аргументы:
- string $path - относительный путь до папки от начальной директории сканирования.
- string $start_path_on_disk - полный путь на яднекс диске, куда будет все закачиваться.
Возвращаемые значения:
$result=[ 'files'=>int, //Общее количество найденных файлов. 'need_update'=>int, //Количество файлов требующих обновления. 'updated'=>int //Количество файлов, которые успешно обновлены. ]; $result=false; //Если найденные файлы не нуждаются в обновлении.
Пример:
$result=$yandex_disk->sync('/upload','/test'); var_dump($result);
Информация о файлах сохраняется в !yd_sync.json рядом со скриптом
sancho2804/yandex_disk 适用场景与选型建议
sancho2804/yandex_disk 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 9 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 05 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 sancho2804/yandex_disk 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sancho2804/yandex_disk 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 9
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 10
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2020-05-05