Files
resty_functions/scripts/upyun_download.lua
T
2022-08-24 01:05:21 +08:00

57 lines
1.7 KiB
Lua

--➤ curl 'http://admin.localhost:8088/api/ngx/upyun_download?uri=%2Fmusic-room%2F17c832cb-bc6b-41f7-96cd-190b7fe4a3d7.jpeg'
package.path = package.path .. ';<SCRIPT_PATH>/?.lua';
local Upt = require("lib.upt")
-- local yun = require("lib.upyun")
local http = require 'resty.http'
local pl = require "pl.pretty"
local uri = ngx.unescape_uri(ngx.var.arg_uri)
-- ngx.log(ngx.INFO, 'Upyun download uri -> ' .. uri)
ngx.log(ngx.INFO, "URI -> " .. uri)
-- local encode_http_uri = ngx.escape_uri(uri)
--local encode_http_uri = uri
--ngx.log(ngx.INFO, encode_http_uri)
local _upt = Upt.upt(uri)
ngx.log(ngx.INFO, "UPT -> " .. _upt)
local remote_url = "https://upyun.alchemy-studio.cn" .. uri .. "?_upt=" .. _upt
ngx.log(ngx.INFO, "REMOTE_URL -> " .. remote_url)
local httpc = http:new()
-- local no_exception, resp, resp_err = pcall(httpc.request_uri, httpc, remote_url,
-- {
-- ssl_verify = false, -- 设置参数 ssl_verify 为false 不校验ssl证书
-- method = "GET",
-- })
--
-- ngx.log("RESP -> ", pl.write(resp)
--
-- local file = assert(io.open('test.jpg', 'wb')
-- f:write(resp.body)
--
-- f:close()
local no_exception, resp, resp_err = pcall(httpc.request_uri, httpc, remote_url,
{
ssl_verify = false, -- 设置参数 ssl_verify 为false 不校验ssl证书
method = "GET",
})
--TODO: send resp.body to Flask API (ai-api) -> convert_mxml_to_xml() -> XML string
-- local xml = ai-api.convert_mxml_to_xml(resp.body)
-- ngx.log(xml)
ngx.log(ngx.INFO, "RESP -> ", pl.write(resp))
---- save the content to a file
local f = assert(io.open('/tmp/test.jpg', 'wb')) -- open in "binary" mode
f:write(resp.body)
--
f:close()