2015-03-02 72 views
0

我有一臺服務器,用Python編寫的,這只是複製從內部存儲所請求的文件在Windows網絡共享:是否可以強制同步Windows網絡共享?

import shutil 
import os.path 

class RPCServer(SimpleXMLRPCServer): 
    def fetchFile(self, targetDir, fileName): 
     try: 
      shutil.copy(
       os.path.join(server_path, fileName) 
       os.path.join(targetDir, fileName) 
      ) 
      f = open(filepath, 'a') 
      f.flush() 
      os.fsync(f.fileno()) 
      f.close() 
      return os.path.join(targetDir, fileName) 
     except Exception, e: 
      return '' 

當客戶端試圖打開該文件的RPC調用有時返回之後,失敗,說該文件不可用:

class RCPClient(): 
    def fetchFile(self, fileName): 
     filepath = server.fetchFile(targetDir, filename) 
     f = open(filePath) # Exception here 

怎麼回事?服務器中的fsync是否確保該文件可用?有沒有辦法在客戶端的網絡共享上同步文件夾?

回答

0

fsync只知道本地文件系統。它不可能確保任何連接的客戶端可以訪問該文件。我建議你重寫你的應用程序,而是直接返回文件。從而完全避免了同步,並且實際上簡化了客戶端服務器。

相關問題