TFS图片服务器 相关文档 TFS RESTful API

TFS RESTful API

注:API语法描述中的粗体为API语法规定的保留关键字部分,斜体为用户输入部分

原生TFS

写文件

描述

此API用于将数据保存成一个TFS文件并以JSON格式返回TFS的文件名

语法

POST /v1/appkey HTTP/1.1

Host: 10.0.0.1:7500

Content-Length: length

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符,若无使用RcServer,使用tfs即可

请求参数
参数名描述
suffix文件后缀
simple_name是否要求必须带正确后缀才可访问存入的TFS文件
1:要求必须带正确后缀才可访问
0:不带后缀也可访问
large_file是否存成大文件(文件名以L开头)
1:存成大文件
0:不存成大文件
应答
名称描述
TFS_FILE_NAME返回的TFS文件名
返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey写一个不带后缀的TFS文件:

POST /v1/tfs HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 22
Date: Fri, 30 Nov 2012 03:05:00 GMT

[data]

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "TFS_FILE_NAME": "T1FOZHB4ET1RCvBVdK"
}

下面这个请求,将会使用tfs这个appkey写一个带“.jpg”后缀的TFS文件,并且要求必须带该后缀才能访问该文件:

POST /v1/tfs?suffix=.jpg&simple_name=1 HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 22
Date: Fri, 30 Nov 2012 03:05:00 GMT

[data]

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "TFS_FILE_NAME": "T1FOZHB4ET1RCvBVdK.jpg"
}

更新文件

描述

此API用于更新一个已有的TFS文件并以JSON格式返回文件名

语法

PUT /v1/appkey/TfsFileName HTTP/1.1

Host: 10.0.0.1:7500

Content-Length: length

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符,若无使用RcServer,使用tfs即可

请求参数
参数名描述
suffix文件后缀
simple_name是否要求必须带正确后缀才可访问存入的TFS文件
1:要求必须带正确后缀才可访问
0:不带后缀也可访问
应答
名称描述
TFS_FILE_NAME返回的TFS文件名
返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey更新TFS文件T1FOZHB4ET1RCvBVdK:

PUT /v1/tfs/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 22
Date: Fri, 30 Nov 2012 03:05:00 GMT

[data]

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "TFS_FILE_NAME": "T1FOZHB4ET1RCvBVdK"
}

读文件

描述

此API用于从一个TFS文件中读取数据

语法

GET /v1/appkey/TfsFileName HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符,若无使用RcServer,使用tfs即可

TfsFileName是要读取的TFS文件的文件名,可带后缀

请求参数
参数名描述
suffix文件后缀
注:若指定了此参数,并且TfsFileName中也带了后缀,两者不一致将无法访问文件
offset要读取数据在文件在的偏移
size要读取数据的长度
应答
名称描述
data数据
返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey读文件T1FOZHB4ET1RCvBVdK:

GET /v1/tfs/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Length: 22
Connection: keep-alive

[data]

下面这个请求,将会使用tfs这个appkey读文件T1FOZHB4ET1RCvBVdK.jpg:

GET /v1/tfs/T1FOZHB4ET1RCvBVdK.jpg HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Length: 22
Connection: keep-alive

[data]

删除文件

描述

此API用于将一个TFS文件删除或隐藏

语法

DELETE /v1/appkey/TfsFileName HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符,若无使用RcServer,使用tfs即可

TfsFileName是要读取的TFS文件的文件名,可带后缀

请求参数
参数名描述
suffix文件后缀
注:若指定了此参数,并且TfsFileName中也带了后缀,两者不一致将无法访问文件
hide指定隐藏操作类型:
1:隐藏
0:反隐藏
应答

返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey删除文件T1FOZHB4ET1RCvBVdK:

DELETE /v1/tfs/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Length: 0
Connection: keep-alive

下面这个请求,将会使用tfs这个appkey隐藏TFS文件T1FOZHB4ET1RCvBVdK.jpg:

DELETE /v1/tfs/T1FOZHB4ET1RCvBVdK.jpg?hide=1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Length: 0
Connection: keep-alive

获取文件元信息(stat)

描述

此API用于获取一个TFS文件的元信息,将以JSON格式返回

语法

GET /v1/appkey/metadata/TfsFileName HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符,若无使用RcServer,使用tfs即可

TfsFileName是要读取的TFS文件的文件名,可带后缀

请求参数
参数名描述
suffix文件后缀
注:若指定了此参数,并且TfsFileName中也带了后缀,两者不一致将无法访问文件
type是否强制获取:
0:正常获取,若文件被删除或隐藏则无法获取
1:强制获取,即使文件被删除或隐藏也可获取
应答
名称描述
FILE_NAME文件名
BLOCK_ID文件所在block的id
FILE_ID文件的file id
OFFSET文件在其所在block中的偏移
SIZE文件大小
OCCUPY_SIZE文件真正占用空间
MODIFY_TIME文件的最后修改时间
CREATE_TIME文件的创建时间
STATUS文件的状态
0:正常
1:删除
4:隐藏
5: 隐藏且删除
CRC文件的CRC校验码
返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey获取文件T1FOZHB4ET1RCvBVdK的元信息:

GET /v1/tfs/metadata/T1FOZHB4ET1RCvBVdK HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Fri, 30 Nov 2012 03:05:00 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "FILE_NAME": "T1FOZHB4ET1RCvBVdK",
    "BLOCK_ID": 101,
    "FILE_ID": 9223190836479524436,
    "OFFSET": 69563585,
    "SIZE": 103578,
    "OCCUPY_SIZE": 103614,
    "MODIFY_TIME": "Fri, 09 Mar 2012 13:40:32 UTC+0800",
    "CREATE_TIME": "Fri, 09 Mar 2012 13:40:32 UTC+0800",
    "STATUS": 0,
    "CRC": 3208008078
}

自定义文件名

获取APPID

描述

此API用于获取每个TFS应用的appid,以JSON格式返回。每个应用根据自己的appkey,可以获取到一个唯一的appid,这个appid是所有自定义文件名操作所必需的参数。它代表一个应用在TFS中的一个独立的名字空间。

语法

GET /v2/appkey/appid HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

请求参数

应答
名称描述
APP_ID应用的appid
返回的状态码
HTTP状态码描述
200 OK操作成功
400 Bad Request错误的请求
500 Internal Server Error登录失败(未在RcServer数据库中配置应用),或TFS或Nginx服务器内部错误
例子

下面这个请求,将会查询appkey为tfs的应用的appid:

GET /v2/tfs/appid HTTP/1.1
Host: 10.0.0.1:7500
Date: Thu, 28 Jun 2012 08:00:26 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Thu, 28 Jun 2012 08:00:26 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "APP_ID": "1"
}

创建目录(create_dir)

描述

此API用于创建一个目录

语法

POST /v2/appkey/appid/uid/dir/dir_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数
参数名描述
recursive1:递归创建父目录
0:不递归创建父目录
应答

返回的状态码
HTTP状态码描述
201 Created创建成功
400 Bad Request目录名不合规范
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
403 Forbidden超过最大子目录数、子文件数或目录深度
409 Conflict目录已存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下创建一个/dir_1的目录:

POST /v2/tfs/1/1234/dir/dir_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 201 Created
Server: Tengine/1.3.0
Date: Wed, 27 Jun 2012 14:59:27 GMT
Content-Length: 0
Connection: keep-alive

删除目录(rm_dir)

描述

此API用于删除一个目录

语法

DELETE /v2/appkey/appid/uid/dir/dir_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答

返回的状态码
HTTP状态码描述
200 Ok删除成功
400 Bad Request目录/文件名不合规范
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
403 Forbidden目录非空
404 Not Found目录或父目录不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下删除/dir_1目录:

DELETE /v2/tfs/1/1234/dir/dir_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Thu, 28 Jun 2012 08:12:13 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Thu, 28 Jun 2012 08:12:13 GMT
Content-Length: 0
Connection: keep-alive

移动/重命名目录(mv_dir)

描述

此API用于移动或重命名一个目录

语法

POST /v2/appkey/appid/uid/dir/dest_dir_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

x-ali-move-source: /src_dir_name

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

此API需要一个特定的header,指定源目录路径

请求参数
参数名描述
recursive1:递归创建目的目录的父目录
0:不递归创建目的目录的父目录
应答

返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request目录/文件名不合规范
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
403 Forbidden移动到子目录中
404 Not Found源目录或父目录不存在,或目的目录已存在,或目的父目录不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下将目录/dir_src重命名为/dir_dest:

POST /v2/tfs/1/1234/dir/dir_dest HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:33:05 GMT
x-ali-move-source: /dir_src

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:33:05 GMT
Content-Length: 0
Connection: keep-alive

列目录(ls_dir)

描述

此API用于列出目录下所有子目录和文件,并以json数组的格式返回。

语法

GET /v2/appkey/metadata/appid/uid/dir/dir_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答
名称描述
NAME文件/目录名
PID文件/目录的父目录的id
ID文件/目录的id
SIZE文件的大小
IS_FILE是否是文件
CREATE_TIME文件/目录的创建时间
MODIFY_TIME文件/目录的最后修改时间
VER_NO文件/目录版本号
返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request目录/文件名不合规范
404 Not Found目录或父目录不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下列出目录“/”下的所有子目录和文件:

GET /v2/tfs/metadata/1/1234/dir/ HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:42:25 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:42:25 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

[
    {
        "NAME": "d_0",
        "PID": 635213,
        "ID": 635218,
        "SIZE": 0,
        "IS_FILE": false,
        "CREATE_TIME": "Wed, 27 Jun 2012 10:32:04 UTC+0800",
        "MODIFY_TIME": "Wed, 27 Jun 2012 11:29:30 UTC+0800",
        "VER_NO": 0
    },
    {
        "NAME": "d_3",
        "PID": 635213,
        "ID": 635219,
        "SIZE": 0,
        "IS_FILE": false,
        "CREATE_TIME": "Wed, 27 Jun 2012 10:36:17 UTC+0800",
        "MODIFY_TIME": "Sat, 30 Jun 2012 13:32:53 UTC+0800",
        "VER_NO": 0
    },
    {
        "NAME": "file_1",
        "PID": -9223372036854140595,
        "ID": 0,
        "SIZE": 222,
        "IS_FILE": true,
        "CREATE_TIME": "Wed, 27 Jun 2012 17:13:23 UTC+0800",
        "MODIFY_TIME": "Wed, 27 Jun 2012 17:25:03 UTC+0800",
        "VER_NO": 1
    }
]

查看目录是否存在

描述

此API用于查看指定目录是否存在

语法

HEAD /v2/appkey/appid/uid/dir/dir_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答

返回的状态码
HTTP状态码描述
200 Ok目录存在
400 Bad Request目录名不合规范
404 Not Found目录不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下查看目录“/dir_1”是否存在:

HEAD /v2/tfs/1/1234/dir/dir_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:42:25 GMT

假如目录存在,对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:42:25 GMT
Content-Length: 0
Connection: keep-alive

创建文件(create_file)

描述

此API用于创建一个文件

语法

POST /v2/appkey/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数
参数名描述
recursive1:递归创建父目录
0:不递归创建父目录
应答

返回的状态码
HTTP状态码描述
201 Created创建成功
400 Bad Request文件名不合规范
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
403 Forbidden超过最大子目录数、子文件数或目录深度
404 Not Found父目录不存在
409 Conflict文件已存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下创建一个/file_1的文件:

POST /v2/tfs/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Fri, 30 Nov 2012 03:05:00 GMT

对应的应答将会是:

HTTP/1.1 201 Created
Server: Tengine/1.3.0
Date: Wed, 27 Jun 2012 14:59:27 GMT
Content-Length: 0
Connection: keep-alive

写文件(write_file)

描述

此API用于向一个文件写数据。自定义文件名支持多次写入,支持pwrite(指定偏移写,可通过offset参数指定偏移量,支持文件空洞),默认为追加写。

注:不支持更新已有数据

语法

PUT /v2/appkey/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Content-Length: length

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数
参数名描述
offset要写入的偏移
size要写入的数据长度
应答

返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request文件名不合规范或参数不合法
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
404 Not Found文件不存在
409 Conflict写偏移处已存在数据
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey向appid为1,uid为1234的名字空间下的文件/file_1写入数据:

PUT /v2/tfs/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Content-Length: 222
Date: Wed, 27 Jun 2012 14:59:27 GMT

[Data]

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Wed, 27 Jun 2012 14:59:27 GMT
Content-Length: 0
Connection: keep-alive

读文件(read_file)

描述

此API用于从一个文件中读数据。

语法

GET /v2/appkey/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数
参数名描述
offset要读取数据在文件中的偏移
size要读取的数据长度
应答
名称描述
data数据
返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request文件名不合规范或参数不合法
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey从appid为1,uid为1234的名字空间下读取文件/file_1(整个文件):

GET /v2/tfs/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Wed, 27 Jun 2012 14:59:27 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Wed, 27 Jun 2012 14:59:27 GMT
Content-Length: 222
Connection: keep-alive

[data]

删除文件(rm_file)

描述

此API用于删除一个文件

语法

DELETE /v2/appkey/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答

返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request文件名不合规范
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下删除/file_1文件:

DELETE /v2/tfs/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Thu, 28 Jun 2012 08:12:13 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Thu, 28 Jun 2012 08:12:13 GMT
Content-Length: 0
Connection: keep-alive

移动/重命名文件(mv_file)

描述

此API用于移动或重命名一个文件

语法

POST /v2/appkey/appid/uid/file/dest_file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

x-ali-move-source: /src_file_name

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

此API需要一个特定的header,指定要移动或重命名的源文件路径

请求参数
参数名描述
recursive1:递归创建目的文件的父目录
0:不递归创建目的文件的父目录
应答

返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request文件名不合规范或源文件和目的文件相同
401 Unauthorized无权限(目前每个应用只对自己的appid下的空间拥有修改权限)
404 Not Found源文件不存在,或目的文件已存在,或目的文件父目录不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下将文件/file_src重命名为/file_dest:

POST /v2/tfs/1/1234/file/file_dest HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:33:05 GMT
x-ali-move-source: /file_src

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:33:05 GMT
Content-Length: 0
Connection: keep-alive

列文件元信息(ls_file)

描述

此API用于列出文件的元信息

语法

GET /v2/appkey/metadata/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答
名称描述
NAME文件名(绝对路径)
PID文件的父目录的id
ID文件的id
SIZE文件的大小
IS_FILE是否是文件
CREATE_TIME文件的创建时间
MODIFY_TIME文件的最后修改时间
VER_NO文件的版本号
返回的状态码
HTTP状态码描述
200 Ok操作成功
400 Bad Request文件名不合规范
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下列出文件“/file_1”的元信息:

GET /v2/tfs/metadata/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:42:25 GMT

对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:42:25 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive

{
    "NAME": "/file_1",
    "PID": 635213,
    "ID": 0,
    "SIZE": 298481,
    "IS_FILE": true,
    "CREATE_TIME": "Fri, 15 Jun 2012 09:37:39 UTC+0800",
    "MODIFY_TIME": "Sat, 30 Jun 2012 23:57:38 UTC+0800",
    "VER_NO": 0
}

查看文件是否存在

描述

此API用于查看指定文件是否存在

语法

HEAD /v2/appkey/appid/uid/file/file_name HTTP/1.1

Host: 10.0.0.1:7500

Date: date

其中appkey是在RcServer的数据库中配置的应用的标识符

appid是应用的appkey对应的appid,可通过获取APPID的API获得

uid是用户id,每个appid和uid的组合对应一个独立的名字空间,可以认为是appid对应的名字空间下的子空间

请求参数

应答

返回的状态码
HTTP状态码描述
200 Ok文件存在
400 Bad Request文件名不合规范
404 Not Found文件不存在
500 Internal Server ErrorTFS或Nginx服务器内部错误
例子

下面这个请求,将会使用tfs这个appkey在appid为1,uid为1234的名字空间下查看文件“/file_1”是否存在:

HEAD /v2/tfs/1/1234/file/file_1 HTTP/1.1
Host: 10.0.0.1:7500
Date: Sat, 30 Jun 2012 05:42:25 GMT

假如文件存在,对应的应答将会是:

HTTP/1.1 200 OK
Server: Tengine/1.3.0
Date: Sat, 30 Jun 2012 05:42:25 GMT
Content-Length: 0
Connection: keep-alive
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值