Răsfoiți Sursa

Update storage_client.py

修改文件下载不完整问题
SurelyYouareJoking 6 ani în urmă
părinte
comite
2217ed7a6a
1 a modificat fișierele cu 5 adăugiri și 4 ștergeri
  1. 5 4
      fdfs_client/storage_client.py

+ 5 - 4
fdfs_client/storage_client.py

@@ -87,16 +87,17 @@ def tcp_recv_file(conn, local_filename, file_size, buffer_size = 1024):
     flush_size = 0
     remain_bytes = file_size
     with open(local_filename, 'wb+') as f:
-        while remain_bytes > 0:
+        diff_size = remain_bytes
+        while diff_size > buffer_size:
+            diff_size = remain_bytes - total_file_size
             try:
-                if remain_bytes >= buffer_size:
+                if diff_size >= buffer_size:
                     file_buffer, recv_size = tcp_recv_response(conn, buffer_size, \
                                                                buffer_size)
                 else:
-                    file_buffer, recv_size = tcp_recv_response(conn, remain_bytes, \
+                    file_buffer, recv_size = tcp_recv_response(conn, diff_size, \
                                                                buffer_size)
                 f.write(file_buffer)
-                remain_bytes -= recv_size
                 total_file_size += recv_size
                 flush_size += recv_size
                 if flush_size >= 4096: