depage / fs
fs
dev-master
2014-10-16 00:00 UTC
Requires
- php: >= 7.3
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-10 14:23:35 UTC
README
透明、协议独立、本地和远程文件系统操作。
在本地文件系统和远程协议上实现类似虚拟文件系统的行为。使用类似FTP客户端(put,get)的语法,depage-fs使得PHP流包装器易于访问,并提供统一的用户界面。
使用遵循本地-远程范式,其中“本地”表示实际的当前工作目录,“远程”可以是另一个本地目录或远程系统上的目录。
depage-fs虚拟跟踪远程工作目录(cd,pwd)。一旦设置远程路径,将阻止对父目录的任何操作。
特性
操作列表
pwd, ls, lsDir, lsFiles, exists, fileInfo, cd, mkdir, rm, mv, get, put, getString, putString
协议
local, ftp(s), ssh(密码或密钥认证)
示例
文件传输,从本地到远程
$fs = Fs::factory('ftp://user:pass@host/'); $fs->mkdir('new/path'); $fs->cd('new/path'); $fs->put('file.zip');
首先,获取SSH指纹...
$fs = Fs::factory('ssh://host'); $print = $fs->getFingerprint();
然后使用SSH密钥连接
$params = array( 'user' => 'user', 'pass' => 'pass', 'privateKeyFile' => '.ssh/id_rsa', 'fingerprint' => $print, 'tmp' => '.' ); $fs = Fs::factory('ssh://host', $params); $fs->get('/home/user/file.zip');
使用说明
- depage-fs错误处理程序将任何文件系统操作错误/警告转换为异常。导致这些问题的问题可能位于与异常中所述的位置不同的位置。
- !!! 对于FTPS非常重要!!!如果服务器不支持SSL,则连接将回退到常规未加密的FTP。目前没有办法确保连接是加密的。容易受到中间人攻击!
- SSH密钥需要是PEM格式(base64)。
- SSH密钥可以是字符串或文件。然而,内部PHP需要密钥文件(出于某种奇怪的原因,包括公钥和私钥)。这些文件将自动生成(并随后删除)在由'tmp'参数指定的临时目录中。