ファイル転送を実際に試行せずにlibcurlでSFTPコマンドを実行することは可能ですか?
CURLOPT_QUOTE を使用してコマンドを実行する (実際にはファイルを削除する) ように設定しましたが、操作を実行した後 (そして、正常に実行され、ファイルが削除された後)、curl が (CURLOPT_UPLOAD に基づいて) ファイルをアップロードまたはダウンロードしようとしているため、CURLE_REMOTE_FILE_NOT_FOUND エラー エラーが発生します。コード。
これまでに試したこと-URLを設定しないと「不正なURLエラー」が発生し、CURLOPT_CONNECT_ONLYを設定すると引用符が実行されません。標準的な方法はありますか?
curl_global_init(CURL_GLOBAL_DEFAULT);
char temp[2000];
_snprintf(STRPARAM(temp),"%s://%s:%d/%s","sftp",m_url,m_port,a_ftpPath);
curl_easy_setopt(m_curl, CURLOPT_URL,temp);
_snprintf(STRPARAM(temp),"%s:%s",m_name,m_pass);
curl_easy_setopt(m_curl, CURLOPT_USERPWD, temp);
curl_easy_setopt(m_curl, CURLOPT_SSH_AUTH_TYPES, CURLSSH_AUTH_PASSWORD);
curl_easy_setopt(m_curl, CURLOPT_UPLOAD, 0L);
curl_easy_setopt(m_curl, CURLOPT_READFUNCTION, NULL);
curl_easy_setopt(m_curl, CURLOPT_NOBODY, 1L);
curl_easy_setopt(m_curl, CURLOPT_HEADER, 1L);
struct curl_slist *headerlist=NULL;
_snprintf(STRPARAM(temp),"rm /%s",a_ftpPath);
headerlist = curl_slist_append(headerlist, temp);
curl_easy_setopt(m_curl, CURLOPT_QUOTE, headerlist);
m_res = curl_easy_perform(m_curl);
curl_easy_setopt(m_curl, CURLOPT_QUOTE, NULL);
curl_easy_setopt(m_curl, CURLOPT_HEADER, 0L);
curl_easy_setopt(m_curl, CURLOPT_NOBODY, 0L);
curl_slist_free_all (headerlist);
curl_global_cleanup();