跳转至

脚本开发 / 返回文件 DFF.RESP_FILE

当返回的内容为「磁盘上的文件」时,可使用DFF.RESP_FILE(...)进行细节控制。

参数 类型 必须/默认值 说明
file_path str 必须 指定返回文件的路径(相对于资源文件目录)
status_code int 200 DFF.RESP(...)同名参数相同
headers dict None DFF.RESP(...)同名参数相同
allow_304 bool False DFF.RESP(...)同名参数相同
auto_delete bool False 指定为True时,文件下载后自动从磁盘中删除
download bool/str True 默认下载文件且保存名与原始文件名相同
指定为False时,让浏览器尽可能直接打开文件
指定为字符串时,按指定的值作为下载文件名

DFF.RESP_FILE(...) 会自动根据文件扩展名填充 HTTP 的 Content-Type 头,默认以 file_path 为准,指定 download 字符串时则以 download 值作为文件名下载

「资源文件目录」指的是容器内的 /data/resources 文件夹,正常部署后此文件夹会挂载到宿主机磁盘实现持久化存储

示例如下:

Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@DFF.API('用例 1')
def case_1():
    '''
    下载资源文件目录下 user-guide.pdf 文件
    '''
    return DFF.RESP_FILE('user-guide.pdf')

@DFF.API('用例 2')
def case_2():
    '''
    让浏览器在线打开资源目录下的`user-guide.pdf`文件
    '''
    return DFF.RESP_FILE('user-guide.pdf', download=False)

@DFF.API('用例 3')
def case_3():
    '''
    浏览器打开资源目录下 index.html 页面
    '''
    return DFF.RESP_FILE('index.html', download=False)

@DFF.API('用例 4')
def case_4():
    '''
    下载资源文件目录下的 servey.xlsx 文件,并保存为「调查表。xlsx」
    '''
    return DFF.RESP_FILE('servey.xlsx', download='调查表。xlsx')

@DFF.API('用例 5')
def case_5():
    '''
    指定额外的响应头
    '''
    headers = {
        'X-Author': 'Tom',
    }
    return DFF.RESP_FILE('user-guide.pdf', headers=headers)