最近刚开始学习lua,想请教个问题,怎样实现图片下载功能,有什么方法和思路吗

使用lua io系列操作文件函数结合ngx header设置并没有能实现,像php的话设置header,读取文件输出到缓存就能搞定,但lua不行。
大佬请指点

    9 days later
    • 如果是需要对下载文件做一些鉴权处理, 可在nginx.conf 里设置,类似:
    location  ~ ^/images/(.+)\.png {
        default_type application/octet-stream;
        access_by_lua_block {
            require("some_mod").auth_download_file(ngx.var[1])
        }
    
        alias images_dir/$1.png;
    }
    • 纯 lua 实现:
    local file_data = read_file(file_path)
    local file_size = string.len(file_data)  
    ngx.header('Content-Type', 'application/octet-stream')
    ngx.header('Content-Disposition', 'attachment;filename=' .. file_name)
    ngx.header('Accept-ranges', 'bytes')
    ngx.header('Accept-length', file_size)
    ngx.print(file_data)
      Write a Reply...