CurlFtpFS: FTP 文件系统 March 2, 2006
Posted by jnan in 社交网络.8 comments
自从上次说到 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。
Wikipedia: 已知的访问方法 December 31, 2005
Posted by jnan in 社交网络.add a comment
看到未完成的安全访问维基百科的方法,发现自己已经知道好几种方法了。列出来看看:
- Tor + Privoxy。最一劳永逸的方法,也是我最后的保障,不过速度有点慢,所以轻易不用:-)
- DNS 重新解析。在 /etc/hosts 下面加入:
145.97.39.132 en.wikipedia.org
145.97.39.132 zh.wikipedia.org
145.97.39.132 jp.wikipedia.org
145.97.39.132 upload.wikimedia.org就可以直接访问了。
- https安全访问。就是上面连接中未完成说的方法了:https://secure.wikimedia.org/wikipedia/zh/wiki/
- 代理。有人说存在长期代理,这也存在速度的问题。
相关主题:
激动我心:用户空间文件系统 December 30, 2005
Posted by jnan in 社交网络.2 comments
正如名字所言,FUSE(Filesystem in Userspace,用户空间文件系统)可以在用户空间实现全功能的虚拟文件系统。
这有什么用处呢?我一开始还在漫不经心的看它的网站,但当我看到使用 FUSE 的文件系统的时候,我不禁重新坐好了。我在这个列表里面发现了如下的名字:
- GmailFS。把你的 Gmail 帐号做为 Linux 下可加载的存储介质,使用 Python 语言。
- BitTorrentFS。名为 BTSlave,可以将 BitTorrent.torrent 加载为一个文件系统。
- WikipediaFS。可以像操作本地文件一样操作 Wikipedia 的文章。
- Flickrfs。允许你使用 Unix 命令上传、下载和搜索你的 Flickr 相册。
- BlogFS。加载你的 WordPress blog,支持阅读和发表主题。这正是我这两天一直留意的东西啊,“得来全不费工夫”:-)
还有在用户空间加密的 Encfs,像访问本地文件系统一样访问 Windows 网络邻居的 SMB for FUSE 和 SMBNetFS,映象蓝牙的 BluetoothFS,CvsFS,SshFS,FuseFTP,CopyFS……
接下来我打算重点看看 GmailFS、BlogFS、FlickrFS。
PS: 访问这个列表可能会有问题。我被 GW 了,也不知道是哪个 Keyword 在起作用?
破网工具:tor+privoxy November 3, 2005
Posted by jnan in 社交网络.1 comment so far
水木社区 上有人云:
有一万种封锁的方法,就有一万零一种绕过封锁的方法, 就看你的决心有多大了。
因为对 wikipedia 的依赖比较大,前几天的封锁让我真有点怅然若失。使用了 https 加密的境象,但是好像现在不是很稳定了,两个已经挂掉了一个。
又在水木社区上看到说现在拥有一个好的破网工具太有必要了,响应号召,今天试了试 tor + privoxy,已经可以使用了。
tor 真是个好东西。破网技术很高明,开发很活跃,文档写的也是简单明了。而且,还可以开设隐藏服务,不知道能不能突破公司的局域网:-)
privoxy 当然也不错了。作为一个代理和过滤工具,privoxy 的功能非常出色,尤其是可以用来过滤广告,不知道可以和 Adblock 拼一拼么?
对于像我一样的 Chinanet 用户,tor + privoxy 真是体贴的很。
2006-01-20 Update:
看到许多人通过搜索来到这个页面,而这里却没有什么安装之类的说明。我的主页因为备案被关,至今没有恢复,感觉很不方便。
其实如果熟悉 linux ,tor+privoxy 的安装很简单,暂时在这里放个连接吧:
注册 flickr 相册 November 2, 2005
Posted by jnan in 社交网络.3 comments
看了车东在 flickr 的相册,感觉功能很不错,保存自己的图片很方便。今天偷空注册了一个,体验一下。
从 8 月份开始,注册 flickr 必须有 yahoo 的 ID,应该是被 yahoo 收购了吧。yahoo 的 ID 也申请了两三次了吧,都因为不常用给忘记了,这次申请的 ID 是 jicknan,先记在这里,不要再忘了:-)
flickr.com 的 photos 的免费用户每个月有 20M 的上传带宽可用,超过了只好等下个月,没用完也不累积到下个月,也不知道够不够用?总大小倒是没有限制,承诺只要用户不删图片就会在,当然前提是遵守人家的规定,不存不好的图片:-) 另外只能看到 200 张图片,超过二百张将不显示。
我现在已经把以前在我的母校鄄城一中论坛发现的一些图片上传了,感觉还不错,你也可以看看啊!
通讯录放在 Gmail 了 October 27, 2005
Posted by jnan in 社交网络.add a comment
一直都有一个希望:能够把朋友们的联系方法以合适的方式储存,组织起来。
从来没想过存在 windows 下面的程序了,试过 php + txt 方式,试过 mutt 的 alias,试过仅仅一个 txt 文件,但是好像都不合适,都没有坚持下了,做了许多无用功,试图多次重复发明车轮。
工作以后,公司里面用 Notes,写邮件时真实很方便,于是就把地址存进了 Notes 的地址本。但是后来 Notes 坏了,重装的时候不知道怎么导入地址本,丢失了。
今天,忽然想到 Gmail 的 Conacts 还不错,有自动补全功能,虽然没有分类,但是群发起邮件来应该蛮爽的,于是就花了点时间,把朋友们的联系方式有输进去了。真希望这是最后一次,南无阿弥陀佛……
Update: Gmail 的 Conacts 具有分组功能了,真是完美。
del.icio.us 的书签 October 26, 2005
Posted by jnan in 社交网络.add a comment
在车东的网站上看到了他在 del.icio.us 的书签。感觉真的很不错,挺实用,可以 rss 访问,而且免费,于是就申请了一个。
这不,今天在 wikipedia 上用功的时候就用上了。从 http://del.icio.us/jicknan 可以看到我今天看了不少各种操作系统共享文件,打印机等资源的协议。
通过代理访问 Wikipedia October 25, 2005
Posted by jnan in 社交网络.add a comment
wikipedia 19 日就被封了,然后就有了各种访问方法。
我主要用 wikipedia 学习新的知识,感觉资料质量挺高,看起来很受用。前两天因为没有学习新知识,所以也就没有去 wikipedia。
不过今天要大规模用了,所以就随便找了个 水木社区 上得来的代理:
https://68.229.16.115/dmirror/http/zh.wikipedia.org/wiki/%E9%A6%96%E9%A1%B5
通过它在 wikipedia 看了很多资料,感觉挺好的。
不过一不小心我还是发现了秘密,直接访问那个 ip 试试?很搞笑吧?
同 Google 一样,Wikipedia 是我学习工作中的重要伙伴,为此我在 wiki 里面建立了 Wikipedia 条目,用来放置和 wikipedia 相关的信息,比如访问方法。
当然了, Google 也有相应的条目哦!
Update: 这个代理也被封了。