rm($filename) método Varien_Io_Sftp não excluir arquivo remoto
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?
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