以前一直不想把图片放在自己Blog的空间里,觉得这样的话可以保证Blog的大小,转移的时候方便,所以就一直选择使用网络相册来保存Blog里用到的图片,然后再链接过来。 在使用Yupoo之前,用的是Flickr,但是后来因为GFW的问题,不得不放弃Flickr。 我在Yupoo上传第一张图片是2006年1月5日,从2006年7月开始将blog上的图片放到Yupoo上,到现在也有2000多张了。一直用Yupoo用的好好的,但是最近Yupoo推出了防盗链功能之后,也没办法继续使用了,只有把图片都转到了本地。 本来防盗链功能是好的,但是如果加上流量限制就不一样了,现在Yupoo的防盗链功能限制免费用户在认证Blog之后,只有1G的外链流量可用(并且Yupoo拥有对此措施进行调整的权利)。对我来说根本不够用,这个防盗链功能是12月9号推出的,在推出这个功能之前的几天,我在Yupoo里的照片已经被盗链用去了3.1G流量,结果导致我在认证之后,自己Blog上也无法正常显示图片(个人认为应该在推出防盗链功能之后对所有用户的流量清空),当咨询Yupoo客服之后,得知这个问题无法解决,因为我的流量已经使用完了,建议我升级VIP。 前两天看到Yupoo推出了1G只需1米,用户可以单独购买外链流量的服务,只好花了5米钱买了5G的流量,让Blog的图片可以正常显示。 之后就在想把Yupoo上的图片转移到本地,但是找了三个可以导出Yupoo图片地址的工具(1、2、3),都以失败告终。第一款是版本过老,用不成了。第二款是在我这里读取图片的过程中总是崩溃,也用不成。第三款是每次只能导出前200张,作者说是Yupoo的API限制了只能读取前200张,这样的话就得每导出200张,就删200张,然后继续导出,很麻烦。 而且即使用上面的三个工具导出成功的话,替换文章中的图片地址也是很麻烦的,因为原来的图片地址中都有随机的字符或者子目录,所以最好的办法就是把原图片下载回来的同时,保持原来的目录结构。例如下面四张图片: /uploadfile/tech/uploadfile/200812/20081230105446625.jpg /uploadfile/tech/uploadfile/200812/20081230105446831.jpg /uploadfile/tech/uploadfile/200812/20081230105446561.jpg /uploadfile/tech/uploadfile/200812/20081230105446917.jpg最好在下载回来的同时使他们保持如下结构: D:\pics ├─photo1.yupoo.com │ ├─20070326 │ │ 183102_1003750627.jpg │ │ │ └─20070116 │ 182649_70474077.jpg │ └─pic.yupoo.com └─sunlei ├─61474638a0ae │ so15ixtb.jpg │ └─606746347a4e 0pcjr2yi.jpg最开始我是想导出Yupoo中的图片,然后再替换,后来想了想,我没必要导出Yupoo中全部的图片,我只需要把Blog中用到的转移出来就行了,这样就能保证Blog中图片的正常显示,其他的照片之类的就没必要转移,因为那些又不用于外链。 所以现在的思路是,把以前文章中用到的图片按照原来的目录结构保存到空间里,然后替换原来的地址中的photo1.yupoo.com或者pic.yupoo.com/sunlei就行了。 接下来说下我转移的过程(我用的WordPress): 1、备份wp_posts表 2、在你的Firefox中添加一个书签List Images(因为我一直用的Firefox,而且也不知道这个书签在IE中是否有效): javascript:outText='';for(i=0;i'+document.images[i].height+''+document.images[i].width+''+document.images[i].src+''}};if(outText!=''){imgWindow=window.open('','imgWin','width=800,height=600');imgWindow.document.write%20('
');imgWindow.document.close()}else{alert('No%20images!')}或者点此存为书签 3、把备份回来的sql文件后缀改为.html,然后用Firefox打开(我的wp_posts表有将近15M,改为html,再打开时那个慢啊)。等打开完毕后,点击刚才保存的书签List Images,会打开一个新页面,列出了所有的图片。 4、查看这个页面的源码,然后复制,另存为html,上传到你的网站,比如我