varien_io_sftp中的rm($ filename)方法不会删除远程文件
题
我很新的是magento dev所以如果我的一些术语不太正确,请原谅我。
我的模块需要使用SFTP协议从远程FTP服务器下载和删除XML文件。我正在使用varien_io_sftp类来做到这一点。
我能打开连接,更改为所需的目录并检索文件,但是当我尝试使用varien_io_sftp rm方法删除它来删除远程文件。
<?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
.
我已经排除了文件上的权限问题。
我不确定为什么我没有任何错误。是因为这个代码正在Cron计划中运行吗?数据库说预定的作业成功。没有什么能在任何日志中找到。
我在这里做错了什么?任何人都有任何想法如何更好地调试此代码?
解决方案
在某些时候展开它看起来像读取方法相对于当前目录接受文件名时,RM方法需要包括的路径。以下代码适用于我。
<?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
.