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的接口就可以代替各个语言的客户端了。