Files
resty_functions/scripts/convert_audio.lua
T
2023-11-06 00:46:47 +08:00

49 lines
1.8 KiB
Lua

-- 指定模块引用目录,否则无法加载同目录下的其他文件
--package.path = package.path .. ';/usr/local/opt/openresty/nginx/scripts/?.lua';
package.path = package.path .. ';<SCRIPT_PATH>/?.lua';
local cjson = require "cjson"
local pl = require "pl.pretty"
local http = require 'resty.http'
local uuid = require "resty.jit-uuid"
local upyun_upload = require("lib.upyun_upload")
local get_wx_media = require("lib.wx_download")
local verify = require('lib.jwt_verify')
local httpc = http:new()
local authHeader = ngx.req.get_headers().Authorization
local sudoerToken = ngx.req.get_headers().HtySudoerToken
verify(httpc, authHeader, sudoerToken)
local function convert()
ngx.log(ngx.INFO, "convert_audio -> upyun_upload -> ", pl.dump(upyun_upload));
local file_dir = ngx.var.tmp_file_dir
ngx.req.read_body()
local req_body = cjson.decode(ngx.req.get_body_data())
ngx.log(ngx.INFO, 'convert_audio -> REQ_BODY -> ', ngx.req.get_body_data())
local input_audio_file = get_wx_media(httpc, req_body["payload"]["media_id"], cjson, pl);
local converted_audio_file = file_dir .. "/" .. uuid.generate_v4() .. ".mp3";
ngx.log(ngx.INFO, "convert_audio -> input audio file -> ", input_audio_file);
ngx.log(ngx.INFO, "convert_audio -> converted audio filename -> ", converted_audio_file);
local cmd = "/usr/local/bin/file_convert" .. " " .. input_audio_file .. " " .. converted_audio_file
ngx.log(ngx.INFO, 'convert_audio -> audio convert command -> ', cmd)
local result, _, code = os.execute(cmd)
if result and code == 0 then
ngx.log(ngx.INFO, "convert_audio - > result -> ", result);
upyun_upload.upload(converted_audio_file, nil);
else
ngx.status = 500
ngx.log(ngx.ERR, "converted_audio_file *FAILED*")
end
end
convert();