ここで、何かを書き込むためにリモート ファイルを開く必要があります。コードは次のようになります。
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(myHost,myPort,myUser,myPassword)
sftp = client.open_sftp()
fileObject = sftp.open(fullFilePath,'wb')
for i in xrange(10000):
fileObject.write(databuf)
fileObject.close()
ここで、すべてのデータが実際にディスクに書き込まれていることを確認したいので、コードを次のように変更します。
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(myHost,myPort,myUser,myPassword)
sftp = client.open_sftp()
fileObject = sftp.open(fullFilePath,'wb')
for i in xrange(10000):
fileObject.write(databuf)
fileObject.flush()
os.fsync(fileObject.fileno())
fileObject.close()
しかし、メッセージが表示されます:
AttributeError: 'SFTPFile' object has no attribute 'fileno'
ファイルを強制的にディスクに同期的に書き込みたい場合、どうすればよいですか?