Pergunta

Eu sou muito novo para Magento dev então me perdoe se algumas das minhas terminologia não é muito justo.

Meu módulo precisa baixar e excluir arquivos XML a partir de um servidor FTP remoto usando o protocolo sftp.Eu estou usando o Varien_Io_Sftp classe para fazer isso.

Eu sou capaz de abrir a conexão, altere para o necessário diretório e recuperar o arquivo, mas quando eu tentar excluí-lo usando o Varien_Io_Sftp rm método remoto arquivo não é excluído.

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

Eu descartou problemas de permissões no arquivo.

Eu não sei por que eu não estou recebendo erros em qualquer lugar.É porque esse código está sendo executado em um agendamento do cron?O banco diz que os trabalhos agendados foram bem-sucedidas.Nada que eu possa encontrar em qualquer logs.

Alguma idéia do que eu estou fazendo de errado aqui?Alguém tem alguma idéia de como eu poderia melhor de depuração este código?

Foi útil?

Solução

Depois de alguns bisbilhotando parece que enquanto o método de leitura aceita um nome de arquivo relativo ao diretório atual, a rm método tem o caminho incluído.O código a seguir funciona para mim.

<?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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top