varien_io_sftpのRM($ filename)メソッドがリモートファイルを削除しません

magento.stackexchange https://magento.stackexchange.com/questions/105685

  •  29-09-2020
  •  | 
  •  

質問

マゼント・デーブにはかなり新しいので、私の用語のいくつかが非常に正しくない場合は許してください。

マイモジュールは、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
.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top