Files
resty_functions/scripts/lib/upyun_upload.lua
T
2022-06-29 21:39:31 +08:00

44 lines
1.3 KiB
Lua

-- 指定模块引用目录,否则无法加载同目录下的其他文件
--package.path = package.path .. ';/usr/local/opt/openresty/nginx/scripts/?.lua';
package.path = package.path .. ';<SCRIPT_PATH>/?.lua';
local upyun_upload = {}
local strip_path = require("strip_path")
local Upyun = require('upyun')
function upyun_upload.upload(filepath, filename)
local upyun, err = Upyun:new({
user = ngx.var.upyun_operator,
passwd = ngx.var.upyun_password,
localFilePath = filepath
})
if not upyun then
ngx.status = 500
ngx.log(ngx.ERR, "failed to initialize upyun: " .. err)
return
end
local bucket = ngx.var.upyun_bucket
local directory = ngx.var.upyun_directory
if not filename then
filename = strip_path.strip_path(filepath)
end
local savePath = bucket .. "/" .. directory .. "/" .. filename
local info, err = upyun:upload_file(savePath, nil, nil)
if not info then
ngx.status = 502
ngx.log(ngx.ERR, "failed to upload file : " .. err)
return
else
ngx.status = 200
local fullpath = ngx.var.upyun_cdn .. directory .. "/" .. filename
ngx.log(ngx.INFO, "UPYUN URL -> ", fullpath)
ngx.say(fullpath)
end
end
return upyun_upload