Skip to content

Commit dcb04ef

Browse files
Ftp server improvement (#193)
* Improved check and verbosity on received file consistency * Version increased * Addressed PR comments
1 parent a08234a commit dcb04ef

File tree

2 files changed

+21
-13
lines changed

2 files changed

+21
-13
lines changed

wadas/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,5 @@
1717
# Date: 2024-08-14
1818
# Description: module to keep track of WADAS version
1919

20-
__version__ = "v1.0.0.a2"
20+
__version__ = "v1.0.0.a3"
2121
__dbversion__ = __version__

wadas/domain/ftps_server.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -82,22 +82,30 @@ def on_login(self, username):
8282
def on_logout(self, username):
8383
logger.info("%s camera logged out.", username)
8484

85-
def on_file_received(self, file):
86-
logger.info("Received %s file from FTPS camera %s.", file, self.username)
85+
def on_file_received(self, received_file):
86+
logger.info("Received %s file from FTPS camera %s.", received_file, self.username)
8787

8888
# check if the received file match one of the allowed extensions
8989
# (the check relies on an inspection of the file content)
90-
if (ftype := filetype.guess(file)) and f".{ftype.extension}" in self.ALLOWED_EXTS:
91-
media_queue.put(
92-
{
93-
"media_path": file,
94-
"media_id": pathlib.PurePath(file).parent.name,
95-
"camera_id": self.username,
96-
}
97-
)
90+
91+
if ftype := filetype.guess(received_file):
92+
file_ext = ftype.extension
93+
logger.debug("Extension of received file: %s", file_ext)
94+
95+
if f".{ftype.extension}" in self.ALLOWED_EXTS:
96+
media_queue.put(
97+
{
98+
"media_path": received_file,
99+
"media_id": pathlib.PurePath(received_file).parent.name,
100+
"camera_id": self.username,
101+
}
102+
)
103+
else:
104+
logger.warning("Unsupported file %s. Removing file.", received_file)
105+
os.remove(received_file)
98106
else:
99-
logger.warning("Unsupported file %s. Removing file.", file)
100-
os.remove(file)
107+
logger.warning("Unable to determine file type for %s. Removing file.", received_file)
108+
os.remove(received_file)
101109

102110
def on_incomplete_file_received(self, file):
103111
logger.info("Partial file received. Removing %s", file)

0 commit comments

Comments
 (0)