我正在尝试从 Symfony2 命令获取 SFTP 服务器中的 json 文件。我使用KnpGaufretteBundle和phpseclib-sftp适配器。
我的计算机上有一个正在运行的 SFTP 服务器,我可以将它与 filezilla 连接并列出/读取文件,所以我认为没有权限问题。
问题是连接工作,我可以列出文件
$sftpService->getExec()->run("ls")
但我不能
$sftpService->getSftp()->listDirectory(".")
我可以创建一个目录但不列出它..而且我无法读取文件。这是我的测试代码:
$sftpService = $this->getContainer()->get("phpseclib_sftp");
dump($sftpService->getExec()->run("ls")); //file "test.txt" exist
$sftp = $sftpService->getSftp();
dump($sftp->exists("test.txt")); //false
dump($sftp->read("test.txt")); //false
dump($sftp->mkdir("testMkdir")); //true
dump($sftpService->getExec()->run("ls")); //the new directory exist
dump($sftp->listDirectory("testMkdir")); //false
以及基本文件夹的权限:
-rwxrwxrwx 1 sftp_user staff 11 6 oct 10:31 test.txt
drwxr-xr-x 2 sftp_user staff 68 6 oct 10:56 testMkdir
编辑:我可以用$sftpService->getExec()->run("cat test.txt"));