def receiveFile(self, filename, fileId, token=""): """ Receive a file from the server :type filename : string / file descriptor / file object :param filename : File to receive from server :type fileId : any :param fileId : Identification of the file being received :type token : string :param token : Optional token for the file :return : S_OK/S_ERROR """ fileHelper = FileHelper() if "NoCheckSum" in token: fileHelper.disableCheckSum() retVal = fileHelper.getDataSink(filename) if not retVal['OK']: return retVal dS = retVal['Value'] closeAfterUse = retVal['closeAfterUse'] retVal = self._sendTransferHeader("ToClient", (fileId, token)) if not retVal['OK']: return retVal trid, transport = retVal['Value'] try: fileHelper.setTransport(transport) retVal = fileHelper.networkToDataSink(dS) if not retVal['OK']: return retVal retVal = transport.receiveData() if closeAfterUse: dS.close() return retVal finally: self._disconnect(trid)
def receiveFile(self, filename, fileId, token=""): """ Receive a file from the server @type filename : string / file descriptor / file object @param filename : File to receive from server @type fileId : any @param fileId : Identification of the file being received @type token : string @param token : Optional token for the file @return : S_OK/S_ERROR """ fileHelper = FileHelper() if "NoCheckSum" in token: fileHelper.disableCheckSum() retVal = fileHelper.getDataSink(filename) if not retVal["OK"]: return retVal dS = retVal["Value"] closeAfterUse = retVal["closeAfterUse"] retVal = self._sendTransferHeader("ToClient", (fileId, token)) if not retVal["OK"]: return retVal trid, transport = retVal["Value"] try: fileHelper.setTransport(transport) retVal = fileHelper.networkToDataSink(dS) if not retVal["OK"]: return retVal retVal = transport.receiveData() if closeAfterUse: dS.close() return retVal finally: self._disconnect(trid)
def sendFile(self, filename, fileId, token=""): """ Send a file to server :type filename : string / file descriptor / file object :param filename : File to send to server :type fileId : any :param fileId : Identification of the file being sent :type token : string :param token : Optional token for the file :return : S_OK/S_ERROR """ fileHelper = FileHelper() if "NoCheckSum" in token: fileHelper.disableCheckSum() retVal = fileHelper.getFileDescriptor(filename, "r") if not retVal['OK']: return retVal fd = retVal['Value'] retVal = self._sendTransferHeader( "FromClient", (fileId, token, File.getSize(filename))) if not retVal['OK']: return retVal trid, transport = retVal['Value'] try: fileHelper.setTransport(transport) retVal = fileHelper.FDToNetwork(fd) if not retVal['OK']: return retVal retVal = transport.receiveData() return retVal finally: self._disconnect(trid)
def sendFile(self, filename, fileId, token=""): """ Send a file to server @type filename : string / file descriptor / file object @param filename : File to send to server @type fileId : any @param fileId : Identification of the file being sent @type token : string @param token : Optional token for the file @return : S_OK/S_ERROR """ fileHelper = FileHelper() if "NoCheckSum" in token: fileHelper.disableCheckSum() retVal = fileHelper.getFileDescriptor(filename, "r") if not retVal["OK"]: return retVal fd = retVal["Value"] retVal = self._sendTransferHeader("FromClient", (fileId, token, File.getSize(filename))) if not retVal["OK"]: return retVal trid, transport = retVal["Value"] try: fileHelper.setTransport(transport) retVal = fileHelper.FDToNetwork(fd) if not retVal["OK"]: return retVal retVal = transport.receiveData() return retVal finally: self._disconnect(trid)