搭建了一个图片库

作者: 阮一峰

日期: 2010年3月 9日

经常有读者抱怨,看不到网志中的图片。

确实如此。正常情况下,过去文章中的图片,超过60%都无法在国内正常显示。

但是,事实上,这个网志的所有图片链接都是有效的,没有一个链接是坏的。无法显示只是因为被屏蔽了,只要你不在中国大陆,所有图片都能看到。

最早的时候,我使用Flickr存放图片。但是2007年,Flickr被屏蔽了。

后来,我改用Picasa存放图片。2009年,Picasa也被屏蔽了。

我又改用Photobucket。2010年1月,Photobucket也被屏蔽了。

怎么办?再换一个地方流浪,还是使用国内的图片储存服务?

我觉得,任何可以免费存放图片的国外服务商,都有可能被屏蔽;而国内的图片服务商,我真的信不过。比如,国内某网站的使用协议写明,他们可以随时无条件删除你的图片,并且不允许上传任何有性意味的图片。

所以,我最后决定,自己搭一个图片库,把图片都存在自己的主机上。

我的思路很简单,先搭建一个开源相册程序,然后修改成Flickr那样就行了。

一开始,我装的是Movable Type。毕竟这是每天用的程序,我最熟悉了。但是,我很快发现,它不可能改成相册。MT的长处是生成静态网页,而相册需要的是动态显示,两者根本无法融合。另一方面,MT的开发现在很不景气,第三方插件极少,甚至连ajax上传按钮都没有,必须花20美元购买商业插件,否则文件只能一个个上传。我只好放弃它了。

改用WordPress以后,我又遇到了另一个问题,那就是插件太多了。WP的相册插件足有几十种之多,我不知道该如何选择。有一个NextGEN Gallery插件的下载人数最多,我就选了它。结果发现,这个插件实在是太优秀了,专业图片网站的功能,它几乎都能实现,而且做得非常易用漂亮。如果你也想搭一个自己的相册,我强烈推荐这个插件。

最后,我搭建完成的图片库网址是http://image.beekka.com,欢迎查看效果。这篇文章里的图片,都是来自那里。因为相册只供我个人使用,所以做得比较粗糙,但是我想要的功能都做到了。

NextGEN Gallery的详细使用说明,请参见David Potter的长篇介绍。我修改的地方,其实只有2个文件。

  1. 在"Options/Gallery"中的"Show ImageBrowser"选项打勾。

  2. 修改插件中的gallery.php文件。

  3. 修改插件中的imagebrowser.php文件。

所有的图片信息,基本上都包含在$image这个对象变量中。使用<?php var_dump($image) ?>查看变量,使用<?php echo $image->filename ?>输出变量值(比如例子中的图片文件名)。

当然,这个图片库也不一定安全,照样有可能被屏蔽。但是,至少一切都在我的控制之中。万一被屏蔽了,只要对图片储存目录打包压缩,然后换一台主机解开压缩包就行了。

我感到,这个图片存储的解决方案有推广意义,值得其他网志作者考虑。

(完)

留言(39条)

Flickr我用了一年了,新浪博客链接的挺正常(国内用户告诉我的)。可能之前屏蔽又开放了吧。也许将来会屏蔽,那我就不知道了。

有用,我原来的图都放在巴巴变,结果最近发现图都出不来了。

如果只是用來貼在文章裏,其實也可以直接通過WP上傳啊,無論是直接在後臺發佈還是利用諸如WLW之類的離線編輯器都很方便。

photobucket没有被封啊,我就在用

如果可以前台上传才算完美,不然使用起来不算简便阿。
PS。win平台直接用live writer发布文章设置图片上传至FTP我觉得就够好了。那样还可以给图片设置单独的域名。

屏蔽跟地域有关系,不同的省市网络状态不完全一样

好久看不到写技术文章了!

想起来这个我就来气,facebook 推出 hip-pop 增强php技术。但是很可惜它的页面被屏蔽了。

可惜了这个技术还是一个华人主导的,目前国内对这个一点研究都没有。

图片库是支持外链的吧,外链多了会给服务器很大压力。

谢谢,果真是说话算话,终于等到这篇文章了。之前一直为这个愁,也试了好几个开源相册程序都不理想,但是没想到找wp插件,还是看了这个文章恍然大悟,怎么没想到直接用wp+插件来做图床呢。有熟悉,又功能强大。

  你直接买一个国外带独立IP虚拟主机不就可以了吗,现在Godaddy和IXWebHosting都支持支付宝人民币支付了!

Photobucket没有被封啊…………
北京网通,到现在为止从来没有看不到Photobucket的图片。
是不是部分地区被封?

大哥,这样做主机流量马上用光

呵呵,我也把picasa的图都转到自己的主机了。

国内的图床都不靠谱儿……条款说改就改……我的意思是巴巴变太不要脸了……

图我一直都可以看得到的,不知别人怎么看不到,最多是显示的慢一点

访问起来速度有点慢

photobucket没被封吧,可以访问的,另外搭建一个域名还不如直接放到博客的服务器里。

之所以用国外的网站存图片

就是要节约流量

结果你自己搞个网站 那怎么节约流量。。。

不如就直接上传图片到这个博客算了。。。。。。。。。

比较稳妥的方法就是直接传到服务器啦。

如果不考虑流量的话,分开服务器安放图片,可以提高页面显示速度。

我把这个地址放在我的博客链接,方便我以后看。谢谢~

对于你的被X的贴图,感到十分有喜感.
技术贴,支持,细看

这样流量会增加多少啊?

如果图片不大,用Dropbox的Public文件夹作为个人图床蛮好的,不限流量。
有时候我还把MP3放进去外链到博客用。

为什么不用自己博客的域名呢?

我自己最近搭建了个,作者里面的演示应该是 别人搭建好的,总的说来还不错吧。

我是这样做的:直接在google docs里面写文章,写完了之后copy到博客中,图片自动会有,大致是以这样的方式存储的:
https://docs.google.com/File?id=dct4q44c_26c6f4vqhj_b
当然前提是google docs不被封。

引用zhang的发言:

我是这样做的:直接在google docs里面写文章,写完了之后copy到博客中,图片自动会有。


Google Docs肯定迟早会被屏蔽。而且这样做不利于后期处理和备份。
引用LDD的发言:

为什么不用自己博客的域名呢?

ruanyifeng.com还没有转到国外,存在一定风险,所以就用了其他域名。

我一早就开始使用独立的图片库了,因为我也差不多,一开始也放在Flickr,后来到国内的Yopoo、bababian等图库。

东一张西一张,乱七八糟,我干脆自己弄个图库。

用是NEATPIC 目录只读程序,建起来非常简单。

请教如何用nextGEN可以搭建一个不同域名的相册供回给原本这个博客用啊~~如果设置很简单的话,就是相当吸引的了

或者说,我猜你的这个方案是用另外一个域名和空间,然后安装wordpresss然后再安装一个nextGEN,是这样子吧?

请问 是否有可能计算每张图片的访问量?

你的图片在我这边显示速度真快,请问这图片库的空间提供商是?我对巴巴变已经绝望了,想自己也搭建一个,盼复。

开了wp的多站点功能,正在寻找博主所提的解决方案,博主能否共享修改后的NextGEN Gallery插件,感谢!

What is the purpose of this article if you don’t thoughts me inquiring?

博主能否共享一下修改后的NextGEN Gallery插件啊,非常感谢!打包发我邮箱里最好了

不用了,谢谢!自己搞定了

听说,如果图片在CDN之类的其它域名,会影响网站的alexa排名,不知道阮老师对此有什么评论?谢谢

思路是如此,学习了,看到大家图片跟主站都是分开放,而不是一起。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接