Question

Je suis assez nouveau à Magento Dev tellement pardonnez-moi si une partie de ma terminologie n'est pas parfaite.

Mon module doit télécharger et supprimer des fichiers XML à partir d'un serveur FTP distant à l'aide du protocole SFTP.J'utilise la classe Varien_IO_SFTP pour le faire.

Je suis capable d'ouvrir la connexion, de passer au répertoire nécessaire et de récupérer le fichier, mais lorsque j'essaie de la supprimer à l'aide de la méthode Varien_IO_SFTP RM, le fichier distant n'est pas supprimé.

<?php
    $vcXMLOut   = "/XML/export";
    $filename   = "test.txt"
    $sftpGetFiles = new Varien_Io_Sftp();
    $sftpGetFiles->open(
        array(
            'host'  => "ftp.test.com",
            'username'  => "test",
            'password'  => "test",
            'timeout'   => '100'
        )
    );
    $sftpGetFiles->cd($vcXMLOut);
    $file = $sftpGetFiles->read($filename); //Contents of file are read successfully
    $sftpGetFiles->rm($filename);   //File remains

J'ai exclu les problèmes d'autorisations sur le dossier.

Je ne suis pas sûr de savoir pourquoi je ne reçois aucune erreur nulle part.Est-ce parce que ce code est exécuté dans un horaire cron?La base de données indique que les emplois planifiés ont réussi.Rien que je puisse trouver dans des journaux.

Une idée de ce que je fais mal ici?Quelqu'un a des idées comment je pourrais mieux déboguer ce code?

Était-ce utile?

La solution

Après que certains piqueurs autour, on dirait que la méthode de lecture accepte un nom de fichier relatif au répertoire actuel, la méthode RM a besoin du chemin inclus.Le code suivant fonctionne pour moi.

<?php
    $vcXMLOut   = "/XML/export";
    $filename   = "test.txt"
    $sftpGetFiles = new Varien_Io_Sftp();
    $sftpGetFiles->open(
        array(
            'host'  => "ftp.test.com",
            'username'  => "test",
            'password'  => "test",
            'timeout'   => '100'
        )
    );
    $sftpGetFiles->cd($vcXMLOut);
    $file = $sftpGetFiles->read($filename); //Contents of file are read successfully
    $sftpGetFiles->rm($sftpGetFiles->pwd().$filename);   //File is successfully deleted

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top