淘宝TFS使用
TFS作为一个开源的分布式文件系统,在处理小文件的性能上还是比较高效的。功能部署有点类似与HDFS,而且增加了nameserver HA的功能。
作为开源项目来讲,其文档资源还有规范性较比Apache的子项目还是有一定差距的。在安装过程中也遇到了很多困难,走了很多弯路。最开始的时候是在ubuntu环境下进行的,首先需要降级安装gcc,然后安装TFS的依赖库,无奈最后编译TFS的时候还是出了异常。最后,切换到64位centOS环境,按照如下的步骤成功搭建:
http://gdcsy.blog.163.com/blog/static/12734360920125624859906/
注:安装TFS的时候没有checkout它的chunk目录,而是直接下载了1.4的版本
附TFS的Spring配置和单元测试类
import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.taobao.common.tfs.TfsManager;import com.taobao.common.tfs.packet.FileInfo;import junit.framework.TestCase;public class TFSTest extends TestCase {ApplicationContext context;protected void setUp() throws Exception {super.setUp();context=new ClassPathXmlApplicationContext("tfs.xml");}public void testTemp(){TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");System.out.println(tfsMgr);}public void testSave(){TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");String fileName=tfsMgr.saveFile("test.pdf", null, null);System.out.println(fileName);}public void testFetch(){TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");boolean flag=tfsMgr.fetchFile("T1_tETBCZT1RCvBVdK", null, "temp.pdf");System.out.println(flag);}public void testDelete(){TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");boolean flag=tfsMgr.unlinkFile("T1XRETByJT1RCvBVdK", null);System.out.println(flag);}public void testHide(){//1 隐藏;0显示TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");boolean flag=tfsMgr.hideFile("T1XRETByJT1RCvBVdK", null, 0);System.out.println(flag);}public void testState(){TfsManager tfsMgr=(TfsManager) context.getBean("tfsManager");FileInfo fileInfo=tfsMgr.statFile("T1_tETBCZT1RCvBVdK", null);int flag=fileInfo.getFlag();System.out.println(flag);}}