Static: variables in the "share" option.

This commit supports variable in the "share" option, the finding path to
file serve is the value from "share". An example:
{
    "share": "/www/data/static$uri"
}
This commit is contained in:
Zhidao HONG
2021-09-30 22:17:28 +08:00
parent 37144d6849
commit c5220944d2
9 changed files with 138 additions and 93 deletions

View File

@@ -18,7 +18,7 @@ class TestStaticSymlink(TestApplicationProto):
self._load_conf(
{
"listeners": {"*:7080": {"pass": "routes"}},
"routes": [{"action": {"share": temp_dir + "/assets"}}],
"routes": [{"action": {"share": temp_dir + "/assets$uri"}}],
}
)
@@ -33,14 +33,14 @@ class TestStaticSymlink(TestApplicationProto):
assert self.get(url='/link/file')['status'] == 200, 'symlink file'
assert 'success' in self.conf(
{"share": temp_dir + "/assets", "follow_symlinks": False},
{"share": temp_dir + "/assets$uri", "follow_symlinks": False},
'routes/0/action',
), 'configure symlink disable'
assert self.get(url='/link/file')['status'] == 403, 'symlink disabled'
assert 'success' in self.conf(
{"share": temp_dir + "/assets", "follow_symlinks": True},
{"share": temp_dir + "/assets$uri", "follow_symlinks": True},
'routes/0/action',
), 'configure symlink enable'
@@ -56,14 +56,14 @@ class TestStaticSymlink(TestApplicationProto):
{
"match": {"method": "HEAD"},
"action": {
"share": temp_dir + "/assets",
"share": temp_dir + "/assets$uri",
"follow_symlinks": False,
},
},
{
"match": {"method": "GET"},
"action": {
"share": temp_dir + "/assets",
"share": temp_dir + "/assets$uri",
"follow_symlinks": True,
},
},
@@ -85,7 +85,7 @@ class TestStaticSymlink(TestApplicationProto):
assert 'success' in self.conf(
{
"share": temp_dir + "/assets",
"share": temp_dir + "/assets$uri",
"chroot": temp_dir + "/assets/dir/dir",
},
'routes/0/action',