sancho2804 / yandex_disk
Yandex Disk 同步
1.0.2
2020-05-06 17:29 UTC
Requires
- php: ^7.0
- sancho2804/rest_client: ^1.0.3
This package is auto-updated.
Last update: 2024-09-26 02:01:55 UTC
README
任务:在工作场所的任务是同步本地服务器文件与Yandex Disk。安装了Yandex的Debian标准程序后,没有任何结果。文件很多,大约700,000个。Yandex无法启动以开始同步。决定编写一个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']);
参数
- Yandex 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
如果传递了第一个参数,则将初始扫描目录的文件夹上传到Yandex Disk。如果省略,则上传整个初始扫描目录,包括各种忽略方式。
参数
- string $path - 相对于初始扫描目录的文件夹的相对路径。
- string $start_path_on_disk - Yandex Disk上的完整路径,所有上传的内容都将保存在这里。
返回值
$result=[ 'files'=>int, //Общее количество найденных файлов. 'need_update'=>int, //Количество файлов требующих обновления. 'updated'=>int //Количество файлов, которые успешно обновлены. ]; $result=false; //Если найденные файлы не нуждаются в обновлении.
示例
$result=$yandex_disk->sync('/upload','/test'); var_dump($result);
文件信息保存在脚本旁边的 !yd_sync.json 中