Ver código fonte

Merge pull request #73 from VREmma/fix/a1p1_file_upload

Updated A1/A1mini/P1S Upload fix
MartinNYHC 4 meses atrás
pai
commit
5007c77604
1 arquivos alterados com 6 adições e 2 exclusões
  1. 6 2
      backend/app/services/bambu_ftp.py

+ 6 - 2
backend/app/services/bambu_ftp.py

@@ -1,4 +1,5 @@
 import asyncio
 import asyncio
+import ftplib
 import logging
 import logging
 import os
 import os
 import socket
 import socket
@@ -77,7 +78,7 @@ class BambuFTPClient:
     FTP_PORT = 990
     FTP_PORT = 990
     DEFAULT_TIMEOUT = 30  # Default timeout in seconds (increased for A1 printers)
     DEFAULT_TIMEOUT = 30  # Default timeout in seconds (increased for A1 printers)
     # Models that need SSL session reuse disabled (A1 series has FTP issues with session reuse)
     # Models that need SSL session reuse disabled (A1 series has FTP issues with session reuse)
-    SKIP_SESSION_REUSE_MODELS = ("A1", "A1 Mini")
+    SKIP_SESSION_REUSE_MODELS = ("A1", "A1 Mini", "P1S", "P1P")
 
 
     def __init__(
     def __init__(
         self,
         self,
@@ -106,7 +107,7 @@ class BambuFTPClient:
                 f"FTP connecting to {self.ip_address}:{self.FTP_PORT} "
                 f"FTP connecting to {self.ip_address}:{self.FTP_PORT} "
                 f"(timeout={self.timeout}s, model={self.printer_model}, skip_session_reuse={skip_reuse})"
                 f"(timeout={self.timeout}s, model={self.printer_model}, skip_session_reuse={skip_reuse})"
             )
             )
-            self._ftp = ImplicitFTP_TLS(skip_session_reuse=skip_reuse)
+            self._ftp = ImplicitFTP_TLS()
             self._ftp.connect(self.ip_address, self.FTP_PORT, timeout=self.timeout)
             self._ftp.connect(self.ip_address, self.FTP_PORT, timeout=self.timeout)
             logger.debug("FTP connected, logging in as bblp")
             logger.debug("FTP connected, logging in as bblp")
             self._ftp.login("bblp", self.access_code)
             self._ftp.login("bblp", self.access_code)
@@ -250,6 +251,9 @@ class BambuFTPClient:
                     progress_callback(uploaded, file_size)
                     progress_callback(uploaded, file_size)
 
 
             with open(local_path, "rb") as f:
             with open(local_path, "rb") as f:
+                if self._should_skip_session_reuse():
+                    ftplib._SSLSocket = None
+
                 self._ftp.storbinary(f"STOR {remote_path}", f, callback=on_block)
                 self._ftp.storbinary(f"STOR {remote_path}", f, callback=on_block)
             logger.info(f"FTP upload complete: {remote_path}")
             logger.info(f"FTP upload complete: {remote_path}")
             return True
             return True