[why]
1. when the uri starts with "//", etc., the previous regular expression did not get the second level directory correctly.
2. when the uploaded data package does not meet the format of "xxxx_yyyymmdd.cgz", uploading is also allowed, but no symbolic link.
[how]
1. modify the variable second_dir regular expression.
2. make conditional judgments on link_name.
Signed-off-by: cuiyili <2268260388(a)qq.com>
---
container/result-webdav/nginx.conf | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/container/result-webdav/nginx.conf b/container/result-webdav/nginx.conf
index c880522..1a4dddc 100644
--- a/container/result-webdav/nginx.conf
+++ b/container/result-webdav/nginx.conf
@@ -54,17 +54,21 @@ http {
path = string.match(uri,"%g*/")
upload_file = string.match(uri, ".+/([^/]*%.%w+)$")
- second_dir = string.match(uri, "/.+/(.*)/.+")
+ second_dir = string.match(uri, "/*%w+/(%w+)/.+")
- if (second_dir == "pkg")
+ if (second_dir == "pkg" or second_dir == "build-pkg")
then
- link_name = "latest.cgz"
+ link_name = "latest"
else
- link_name = string.match(upload_file, "(.*)_%d+%.cgz")..".cgz"
+ link_name = string.match(upload_file, "(.*)_%d+%.cgz")
+ end
+
+ if (link_name ~= '')
+ then
+ link_name = link_name..".cgz"
+ root_patch = "/srv/"..path
+ io.popen("cd "..root_patch.."&& ln -sf "..upload_file.." "..link_name)
end
-
- root_patch = "/srv/"..path
- io.popen("cd "..root_patch.."&& ln -sf "..upload_file.." "..link_name)
}
}
--
2.23.0