2015-03-02 28 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只知道本地文件系统。它不可能确保任何连接的客户端可以访问该文件。我建议你重写你的应用程序,而是直接返回文件。从而完全避免了同步,并且实际上简化了客户端服务器。

相关问题