TFS(taobao file system淘宝文件系统)RestFul API 试用总结

曾嘉言
2023-12-01
刚试用了下淘宝自己开发的文件系统TFS,感觉基于nginx做的RESTful API用起来还是挺方便的,下面对这些API简单总结下,也说下我的一些经验:

特别是那些觉得搭PHP环境的很麻烦的朋友不访参考下我的方案二。

nginx_ip为nginx客户端的ip,port为nginx web服务接口。

一.得用restful api(详细可以参考淘宝的github)

    1.上传文件:
        --------------------------------------------------------------
           使用方法     :   post
           使用URL      :   http:nginx_ip:port/v1/tfs/1.1
           data         :   文件(此文件为sring或者数据流(buffer))
        --------------------------------------------------------------
        
        同理,此时会返回一个TFS所分配的文件名,为json格式,形式如下:
                    
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
        
        
    2.得到数据:
    
        --------------------------------------------------------------
           使用方法     :   get
           使用URL      :   http:nginx_ip:port/v1/tfs/1.1/TFS文件名
        --------------------------------------------------------------
        
        如:http:192.168.1.74:80/v1/tfs/1.1/T1F6ETBj_T1RCvBVdK
        
    3.删除数据:
    
         --------------------------------------------------------------
           使用方法     :   delete
           使用URL      :   http:nginx_ip:port/v1/tfs/1.1/TFS文件名
         --------------------------------------------------------------
        
    4.更新数据:
    
        --------------------------------------------------------------
           使用方法     :   put
           使用URL      :   http:nginx_ip:port/v1/tfs/1.1/TFS文件名
           data         :   文件(此文件为sring或者数据流(buffer))
        --------------------------------------------------------------
        
         同理,此时会返回一个TFS所分配的文件名,为json格式,形式如下:
                    
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
        
        此时返回的依然是当前文件名,这是这个文件名的内容变成了另外一个文件

        火狐有测试RESful API的插件,大家可以去试用一下

二.对那些觉得搭java,php等调用客户端觉得难的朋友不防可以试下这这个方案,大家应该都知道linux命令curl

1.上传命令为 curl --data-binary @/文件目录名/文件名(当前文件目录下就直接写文件名) ngx_host:port/v1/tfs  
    
        此时会返回一个TFS所分配的文件名,为json格式,形式如下:
                
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
        
        显然返回的是TFS给我们所上传文件的TFS的独有文件名
        
    2.下载命令为 curl ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK -o /文件目录/文件名(当前文件目录下直接写文件名)
    
        T1F6ETBj_T1RCvBVdK为上传文件时TFS所给我们返回的独有文件名
        
    3.删除命令是 curl -X "DELETE" ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK
    
    4.更改命令是 curl --data-binary @/文件目录名/文件名(当前文件目录下就直接写文件名) -X "PUT" ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK
    
    
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
    
    此时返回的依然是当前文件名,这是这个文件名的内容变成了另外一个文件
    
    # 注意:PHP有curl这个模拟库,相信结合着这个API用起来应该不难1.上传命令为 curl --data-binary @/文件目录名/文件名(当前文件目录下就直接写文件名) ngx_host:port/v1/tfs  
    
        此时会返回一个TFS所分配的文件名,为json格式,形式如下:
                
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
        
        显然返回的是TFS给我们所上传文件的TFS的独有文件名
        
    2.下载命令为 curl ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK -o /文件目录/文件名(当前文件目录下直接写文件名)
    
        T1F6ETBj_T1RCvBVdK为上传文件时TFS所给我们返回的独有文件名
        
    3.删除命令是 curl -X "DELETE" ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK
    
    4.更改命令是 curl --data-binary @/文件目录名/文件名(当前文件目录下就直接写文件名) -X "PUT" ngx_host:port/v1/tfs/T1F6ETBj_T1RCvBVdK
    
    
        {
            "TFS_FILE_NAME": "T1F6ETBj_T1RCvBVdK"
        }
    
    此时返回的依然是当前文件名,这是这个文件名的内容变成了另外一个文件
   

    我相信很多语言都有直接调用linux命令的类库,这样的话就不用在TFS服务器上搭各个语言的客户端,我们只需要在web服务器上连接上Ngnix服务器然后调用nginx的接口就可以代替各个语言的客户端了。

 类似资料: