file_manager: add websocket method for file delete
Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
7078d5c980
commit
ae49dfe8f2
@ -339,11 +339,10 @@ class FileRequestHandler(AuthorizedFileHandler):
|
|||||||
if 'DELETE' not in self.methods:
|
if 'DELETE' not in self.methods:
|
||||||
raise tornado.web.HTTPError(405)
|
raise tornado.web.HTTPError(405)
|
||||||
|
|
||||||
path = self.request.path.lstrip("/").split("/", 3)[-1]
|
path = self.request.path.lstrip("/").split("/", 2)[-1]
|
||||||
filename = path.split("/", 1)[-1]
|
|
||||||
file_manager = self.server.lookup_plugin('file_manager')
|
file_manager = self.server.lookup_plugin('file_manager')
|
||||||
try:
|
try:
|
||||||
file_manager.delete_file(path)
|
filename = await file_manager.delete_file(path)
|
||||||
except self.server.error as e:
|
except self.server.error as e:
|
||||||
if e.status_code == 403:
|
if e.status_code == 403:
|
||||||
raise tornado.web.HTTPError(
|
raise tornado.web.HTTPError(
|
||||||
|
@ -38,6 +38,9 @@ class FileManager:
|
|||||||
"/server/files/move", ['POST'], self._handle_file_move_copy)
|
"/server/files/move", ['POST'], self._handle_file_move_copy)
|
||||||
self.server.register_endpoint(
|
self.server.register_endpoint(
|
||||||
"/server/files/copy", ['POST'], self._handle_file_move_copy)
|
"/server/files/copy", ['POST'], self._handle_file_move_copy)
|
||||||
|
self.server.register_endpoint(
|
||||||
|
"/server/files/delete_file", ['DELETE'], self._handle_file_delete,
|
||||||
|
protocol=["websocket"])
|
||||||
# Register APIs to handle file uploads
|
# Register APIs to handle file uploads
|
||||||
self.server.register_upload_handler("/server/files/upload")
|
self.server.register_upload_handler("/server/files/upload")
|
||||||
self.server.register_upload_handler("/api/files/local")
|
self.server.register_upload_handler("/api/files/local")
|
||||||
@ -441,6 +444,10 @@ class FileManager:
|
|||||||
return simple_list
|
return simple_list
|
||||||
return flist
|
return flist
|
||||||
|
|
||||||
|
async def _handle_file_delete(self, path, method, args):
|
||||||
|
file_path = args.get("path")
|
||||||
|
return await self.delete_file(file_path)
|
||||||
|
|
||||||
async def delete_file(self, path):
|
async def delete_file(self, path):
|
||||||
parts = path.split("/", 1)
|
parts = path.split("/", 1)
|
||||||
root = parts[0]
|
root = parts[0]
|
||||||
@ -462,6 +469,7 @@ class FileManager:
|
|||||||
raise
|
raise
|
||||||
os.remove(full_path)
|
os.remove(full_path)
|
||||||
self.notify_filelist_changed('delete_file', filename, root)
|
self.notify_filelist_changed('delete_file', filename, root)
|
||||||
|
return filename
|
||||||
|
|
||||||
def notify_filelist_changed(self, action, fname, base, source_item={}):
|
def notify_filelist_changed(self, action, fname, base, source_item={}):
|
||||||
self._update_file_list(base, do_notify=True)
|
self._update_file_list(base, do_notify=True)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user