2016-10-06 5 views
1

Ich versuche, eine JSON-Datei in einem SFTP-Server von einem Symfony2-Befehl zu erhalten. Ich benutze KnpGaufretteBundle und den phpseclib-sftp Adapter.SFTP mit Gaufrette und Phpseclib kann Dateien nicht lesen

Ich habe auf meinem Computer einen laufenden SFTP-Server, ich kann es mit filezilla verbinden und listet/lese Dateien, so glaube ich nicht, dass es ein Berechtigungsproblem ist.

Das Problem ist die Anschlussarbeiten, ich die Dateien mit

$sftpService->getExec()->run("ls") 

Liste kann Aber ich kann nicht mit

$sftpService->getSftp()->listDirectory(".") 

ich ein Verzeichnis erstellen kann, aber es nicht .. und ich Liste kann die Dateien nicht lesen. Hier ist mein Testcode:

$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 

Und hier ist der Ausgang: Console output

Und die Berechtigungen des Basisordner:

-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 

Hier wird die Warnung für die read Funktion enter image description here

Edit: Ich kann die Datei mitlesen

Antwort

1

Ok, so scheint es, ist wie für SFTP Urls (ssh2.STFP: // ...) Ich brauche den absoluten Pfad zu verwenden, der Basisordner meines ftp Benutzer nicht funktioniert, so mit, dass es funktioniert:

$sftp->read($sftp->realpath("test.txt"))