jump to navigation

CurlFtpFS: FTP 文件系统 March 2, 2006

Posted by jnan in 社交网络.
trackback

自从上次说到 FUSE 用户空间文件系统,我就感到这一功能非常有用。之后试用了一下用 Python写的 flickrfs,因为不懂 Python,感觉不是很好:-(

这两天因为用 Ftp 传多个目录/文件,Linux 下面命令行格式的 ftp client 似乎都不支持多个文件上传,于是就想到了用户空间的文件系统。

FUSE 的主页上浏览了一下,有两个:FuseFTP 和 CurlFtpFS 。FuseFTP 使用 Perl 实现,下载之后总是不能使用,对 Perl 不了解,也就放弃了。CurlFtpFS 用 C 编写,其中用到了 libcurl ,看来也挺麻烦的,不过总算可以用。

curlftpfs 是作者 braga 2006-02-21 在 sf 上注册的,用的人还不多,起码在 blog 空间没有搜到记录。curlftpfs 没有提供帮助信息,因此在怎么使用上多试了几次,发现使用下面的格式可行:
./curlftpfs ftp://username:password@ftp.sitesled.com /mount/point

可能是因为网络的问题,我用 curlftpfs 挂在 ftp.sitesled.com 感觉并不好,传文件很慢,后来断掉了。不过之后探索时,我挂在本地 ftp server 的时候感觉还是很不错的。

当然了,构成 curlftpfs 的主题自然是 fuse 和 libcurl 。正式这两个幕后英雄才使得 curlftpfs 不到 1000 行就达到了目的。

此前已经介绍过 fuse ,这次着重介绍一下 libcurl。curl/libcurl 支持想到多的协议,一开始接触 curl 的时候没有太在意,感觉不过是个命令工具而已。但是当我了解到 curl 支持的协议和 libcurl 的广泛应用之后,我立刻对其刮目相看了。curl 的网站上这样描述:

curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, TFTP, HTTP, HTTPS, TELNET, DICT, FILE and LDAP. curl supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos…), file transfer resume, proxy tunneling and a busload of other useful tricks.

libcurl 中的常用函数有:

  • curl_easy_init
  • curl_easy_setopt
  • curl_easy_perform
  • curl_easy_cleanup

其中,最关键的当属 curl_easy_setopt,设置 curl 用到的诸多参数。

简单抓取 http 首页的程序如下:
#include
#include
#include

int main(int argc, char* argv[])
{

CURL* curl;
CURLcode res;

if ( argc != 2)
{
printf("USAGE: %s \n", argv[0]);
exit(1);
}

printf("%s\n", curl_version());
curl = curl_easy_init();
if (curl == NULL)
{
printf("Error init libcurl!\n");
exit(1);
}
curl_easy_setopt(curl, CURLOPT_URL, argv[1]);
curl_easy_setopt(curl, CURLOPT_VERBOSE,1);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);

return 0;

}

编译:
gcc -o testcurl -lcurl testcurl.c

执行:
./testcurl http://jnan.sitesled.com

cwjboy 对 CURL 有一些研究,较为详细的分析了各个函数。

除 C外,libcurl 还有了 PHP,Python 的 API。

Advertisements

Comments»

1. Oxycle - June 25, 2007
2. gioco keno inlinea - November 18, 2007

casino live

3. bonus casino770 - November 19, 2007

ganar premio portal internet

4. business card credit processing start credit card processing for business - January 9, 2008

i730 mp3 nextel ringtones nextel mp3 ringtones

Offer credit card bad debt uk le jeu poker gratuit franais

5. cingular free music real ringtones - January 31, 2008

free ringtones maker download

Does 3510 info nokia remember ringtones free motorola nextel ringtones

6. download free alltel ringtones - February 2, 2008

download free ringtones ctu

The download greek ringtones free cingular cell phone ringtones

7. true tones universe - February 3, 2008

uk realtones

Ironically free motorola ringtones v710 verizon realtones for

8. keypress motorola ringtones - March 15, 2008

cell free phone ringtones sprint

Although free sprint pcs ringtones and screensaver free sprint cell phone ringtones

9. liliahuffman94627 - April 8, 2016

I would also strongly recommend The Handmaid’s Tale. Click http://link.mx/hool081945


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: