mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +08:00
optional upload prefix
This commit is contained in:
parent
74a19e40da
commit
921d7da513
@ -136,7 +136,8 @@ class MsdApi:
|
|||||||
|
|
||||||
@exposed_http("POST", "/msd/write")
|
@exposed_http("POST", "/msd/write")
|
||||||
async def __write_handler(self, request: Request) -> Response:
|
async def __write_handler(self, request: Request) -> Response:
|
||||||
name = valid_msd_image_name(request.query.get("image"))
|
unsafe_prefix = request.query.get("prefix", "") + "/"
|
||||||
|
name = valid_msd_image_name(unsafe_prefix + request.query.get("image", ""))
|
||||||
size = valid_int_f0(request.content_length)
|
size = valid_int_f0(request.content_length)
|
||||||
remove_incomplete = self.__get_remove_incomplete(request)
|
remove_incomplete = self.__get_remove_incomplete(request)
|
||||||
written = 0
|
written = 0
|
||||||
@ -151,6 +152,7 @@ class MsdApi:
|
|||||||
|
|
||||||
@exposed_http("POST", "/msd/write_remote")
|
@exposed_http("POST", "/msd/write_remote")
|
||||||
async def __write_remote_handler(self, request: Request) -> (Response | StreamResponse): # pylint: disable=too-many-locals
|
async def __write_remote_handler(self, request: Request) -> (Response | StreamResponse): # pylint: disable=too-many-locals
|
||||||
|
unsafe_prefix = request.query.get("prefix", "") + "/"
|
||||||
url = valid_url(request.query.get("url"))
|
url = valid_url(request.query.get("url"))
|
||||||
insecure = valid_bool(request.query.get("insecure", False))
|
insecure = valid_bool(request.query.get("insecure", False))
|
||||||
timeout = valid_float_f01(request.query.get("timeout", 10.0))
|
timeout = valid_float_f01(request.query.get("timeout", 10.0))
|
||||||
@ -175,7 +177,7 @@ class MsdApi:
|
|||||||
name = str(request.query.get("image", "")).strip()
|
name = str(request.query.get("image", "")).strip()
|
||||||
if len(name) == 0:
|
if len(name) == 0:
|
||||||
name = htclient.get_filename(remote)
|
name = htclient.get_filename(remote)
|
||||||
name = valid_msd_image_name(name)
|
name = valid_msd_image_name(unsafe_prefix + name)
|
||||||
|
|
||||||
size = valid_int_f0(remote.content_length)
|
size = valid_int_f0(remote.content_length)
|
||||||
|
|
||||||
|
|||||||
@ -533,6 +533,12 @@
|
|||||||
<input type="text" id="msd-new-url" style="width: 100%">
|
<input type="text" id="msd-new-url" style="width: 100%">
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Optional upload prefix:</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" id="msd-new-prefix" style="width: 100%" placeholder="... like /foo/bar">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<hr>
|
<hr>
|
||||||
<table class="kv">
|
<table class="kv">
|
||||||
@ -544,6 +550,10 @@
|
|||||||
<td></td>
|
<td></td>
|
||||||
<td>• To speed up the upload, close the stream window.</td>
|
<td>• To speed up the upload, close the stream window.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>• A non-empty upload prefix will be created when uploading.</td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="hidden" id="msd-uploading-sub">
|
<div class="hidden" id="msd-uploading-sub">
|
||||||
|
|||||||
@ -71,6 +71,9 @@ li(id="msd-dropdown" class="right feature-disabled")
|
|||||||
tr
|
tr
|
||||||
td #[b Or] paste a URL:
|
td #[b Or] paste a URL:
|
||||||
td #[input(type="text" id="msd-new-url" style="width: 100%")]
|
td #[input(type="text" id="msd-new-url" style="width: 100%")]
|
||||||
|
tr
|
||||||
|
td Optional upload prefix:
|
||||||
|
td #[input(type="text" id="msd-new-prefix" style="width: 100%" placeholder="... like /foo/bar")]
|
||||||
hr
|
hr
|
||||||
table(class="kv")
|
table(class="kv")
|
||||||
tr
|
tr
|
||||||
@ -79,6 +82,9 @@ li(id="msd-dropdown" class="right feature-disabled")
|
|||||||
tr
|
tr
|
||||||
td
|
td
|
||||||
td • To speed up the upload, close the stream window.
|
td • To speed up the upload, close the stream window.
|
||||||
|
tr
|
||||||
|
td
|
||||||
|
td • A non-empty upload prefix will be created when uploading.
|
||||||
div(id="msd-uploading-sub" class="hidden")
|
div(id="msd-uploading-sub" class="hidden")
|
||||||
hr
|
hr
|
||||||
table(class="kv")
|
table(class="kv")
|
||||||
|
|||||||
@ -176,6 +176,16 @@ ul#navbar li div.menu div.buttons select {
|
|||||||
padding: 0 16px;
|
padding: 0 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ul#navbar li div.menu input[type=text] {
|
||||||
|
height: 1.5em;
|
||||||
|
}
|
||||||
|
ul#navbar li div.menu input[type=text]::-moz-placeholder {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
ul#navbar li div.menu input[type=text]::-webkit-input-placeholder {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
ul#navbar li div.menu hr {
|
ul#navbar li div.menu hr {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: block;
|
display: block;
|
||||||
|
|||||||
@ -114,11 +114,12 @@ export function Msd() {
|
|||||||
var __clickUploadNewButton = function() {
|
var __clickUploadNewButton = function() {
|
||||||
let file = tools.input.getFile($("msd-new-file"));
|
let file = tools.input.getFile($("msd-new-file"));
|
||||||
__http = new XMLHttpRequest();
|
__http = new XMLHttpRequest();
|
||||||
|
let prefix = encodeURIComponent($("msd-new-prefix").value);
|
||||||
if (file) {
|
if (file) {
|
||||||
__http.open("POST", `/api/msd/write?image=${encodeURIComponent(file.name)}&remove_incomplete=1`, true);
|
__http.open("POST", `/api/msd/write?prefix=${prefix}&image=${encodeURIComponent(file.name)}&remove_incomplete=1`, true);
|
||||||
} else {
|
} else {
|
||||||
let url = $("msd-new-url").value;
|
let url = $("msd-new-url").value;
|
||||||
__http.open("POST", `/api/msd/write_remote?url=${encodeURIComponent(url)}&remove_incomplete=1`, true);
|
__http.open("POST", `/api/msd/write_remote?prefix=${prefix}&url=${encodeURIComponent(url)}&remove_incomplete=1`, true);
|
||||||
}
|
}
|
||||||
__http.upload.timeout = 7 * 24 * 3600;
|
__http.upload.timeout = 7 * 24 * 3600;
|
||||||
__http.onreadystatechange = __httpStateChange;
|
__http.onreadystatechange = __httpStateChange;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user