GNURLOPT_FTP_FILEMETHOD(3)

πŸ“¦ version 7.72.0, in nixos 26.05, nixpkgs unstable

πŸ’– GNURLOPT_FTP_FILEMETHOD(3) πŸ’–

okay bestie, this page is from the curl_easy_setopt options manual, and it’s all about telling libcurl how to reach a file on an FTP(S) server 🫢


🌸 NAME 🌸

CURLOPT_FTP_FILEMETHOD β€” select directory traversing method for FTP ✨

πŸŽ€ SYNOPSIS πŸŽ€

#include <gnurl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_FTP_FILEMETHOD,
                          long method);

πŸ’… DESCRIPTION πŸ’…

You pass a long telling libcurl which method to use to reach a file on a FTP(S) server πŸ‘‘

This option exists because some server implementations just aren’t compliant to what the standards say should work 😭

The argument should be one of these alternatives, no cap:

  • CURLFTPMETHOD_MULTICWD β€” libcurl does a single CWD operation for each path part in the given URL. For deep hierarchies this means many commands. This is how RFC1738 says it should be done. This is the default but the slowest behavior 🐌
  • CURLFTPMETHOD_NOCWD β€” libcurl does no CWD at all. libcurl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior πŸ”₯
  • CURLFTPMETHOD_SINGLECWD β€” libcurl does one CWD with the full target directory and then operates on the file "normally" (like in the multicwd case). This is somewhat more standards compliant than nocwd but without the full penalty of multicwd ✨

🌈 DEFAULT 🌈

CURLFTPMETHOD_MULTICWD β€” yes, the slowest one, but that’s the default, bestie πŸ’€

πŸ¦‹ PROTOCOLS πŸ¦‹

FTP 🐟

πŸ“ EXAMPLE πŸ“

here’s the code moment, copied exactly:

       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/1/2/3/4/new.txt");
         curl_easy_setopt(curl, CURLOPT_FTP_FILEMETHOD,
                                CURLFTPMETHOD_SINGLECWD);

         ret = curl_easy_perform(curl);

         curl_easy_cleanup(curl);
       }

⭐ AVAILABILITY ⭐

Added in 7.15.1 πŸ‘‘

πŸ’œ RETURN VALUE πŸ’œ

Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not πŸ’…

🧚 SEE ALSO 🧚


okay bye bestie β€” this iconic little page is from libcurl 7.37.0, dated 19 Jun 2014, and it’s the GNURLOPT_FTP_FILEMETHOD(3) page πŸ’–βœ¨

πŸ“¦ where this page comes from