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

@@ -44,7 +44,7 @@ class TestStaticMount(TestApplicationProto):
self._load_conf(
{
"listeners": {"*:7080": {"pass": "routes"}},
"routes": [{"action": {"share": temp_dir + "/assets/dir"}}],
"routes": [{"action": {"share": temp_dir + "/assets/dir$uri"}}],
}
)
@@ -72,14 +72,14 @@ class TestStaticMount(TestApplicationProto):
assert resp['body'] == 'mount'
assert 'success' in self.conf(
{"share": temp_dir + "/assets/dir", "traverse_mounts": False},
{"share": temp_dir + "/assets/dir$uri", "traverse_mounts": False},
'routes/0/action',
), 'configure mount disable'
assert self.get(url='/mount/')['status'] == 403
assert 'success' in self.conf(
{"share": temp_dir + "/assets/dir", "traverse_mounts": True},
{"share": temp_dir + "/assets/dir$uri", "traverse_mounts": True},
'routes/0/action',
), 'configure mount enable'
@@ -97,14 +97,14 @@ class TestStaticMount(TestApplicationProto):
{
"match": {"method": "HEAD"},
"action": {
"share": temp_dir + "/assets/dir",
"share": temp_dir + "/assets/dir$uri",
"traverse_mounts": False,
},
},
{
"match": {"method": "GET"},
"action": {
"share": temp_dir + "/assets/dir",
"share": temp_dir + "/assets/dir$uri",
"traverse_mounts": True,
},
},
@@ -120,7 +120,7 @@ class TestStaticMount(TestApplicationProto):
assert 'success' in self.conf(
{
"share": temp_dir + "/assets/dir",
"share": temp_dir + "/assets/dir$uri",
"chroot": temp_dir + "/assets",
},
'routes/0/action',
@@ -130,7 +130,7 @@ class TestStaticMount(TestApplicationProto):
assert 'success' in self.conf(
{
"share": temp_dir + "/assets/dir",
"share": temp_dir + "/assets/dir$uri",
"chroot": temp_dir + "/assets",
"traverse_mounts": False,
},