Domanda

Sono abbastanza nuovo per Magento Dev così perdonami se alcune delle mie terminologia non sono del tutto bene.

Il mio modulo deve scaricare ed eliminare i file XML da un server FTP remoto utilizzando il protocollo SFTP.Sto usando la classe VARIEN_IO_SFTP per farlo.

Sono in grado di aprire la connessione, passare alla directory necessaria e recuperare il file ma quando provo a eliminarlo utilizzando il metodo VARIEN_IO_SFTP RM il file remoto non viene eliminato.

<?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
.

Ho escluso i problemi dei permessi sul file.

Non sono sicuro del motivo per cui non ottengo errori da nessuna parte.È perché questo codice è gestito in un programma di cron?Il database dice che i lavori programmati hanno avuto successo.Niente che riesco a trovare in qualsiasi registro.

Qualche idea di cosa sto facendo male qui?Qualcuno ha qualche idea come potrei fare meglio il debug di questo codice?

È stato utile?

Soluzione

Dopo che alcuni si accendono sembrano così mentre il metodo di lettura accetta un nome file relativo alla directory corrente, il metodo RM ha bisogno del percorso incluso.Il seguente codice funziona per me.

<?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
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top