无法使用 cURL 删除 SFTP 文件

Cannot delete a SFTP file using cURL

我在删除或使用带有 cURL 的 rm 时遇到了一个奇怪的问题。当我尝试在 FileZilla 上使用相同的凭据删除或移动文件时它工作得很好,但当通过 cURL 运行 它时不起作用。我的代码有什么问题吗?

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $sftp_server.$file_name);
    curl_setopt($ch, CURLOPT_USERPWD,$user_pwd);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch, CURLOPT_PROTOCOLS,CURLPROTO_SFTP);
    curl_setopt($ch, CURLOPT_QUOTE, array('rm ~/folder/' . $file_name));

    curl_exec($ch);

    curl_close($ch);

我使用 cURL 下载 SFTP 文件也没有任何问题。

当我 var_dump() curl 结果时,我得到一个权限被拒绝“curl: (21) rm 命令失败:权限被拒绝”。

感谢您的帮助!

我能够通过使用 ssh2_sftp 而不是 cURL 的不同方式连接到 SFTP 来找到解决方案。如果有人可以从中受益,这是我使用的代码片段:

$connection = ssh2_connect('SFTP-Server-name', 22);
ssh2_auth_password($connection, $username, $password);
$sftp = ssh2_sftp($connection);

ssh2_sftp_unlink($sftp, $file_path.$file_name);