def lineReceived(self, line): line = line.strip() if line == OK: sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 deffered = sender.beginFileTransfer(self.fileObj, self.transport, None) deffered.addCallback(self.success).addErrback(self.error)
def getshared_cb(data): if len(data) == 0: error = { 'status': {'error': "Invalid Request", 'message': "File does not exist."} } request.write(json.dumps(error, sort_keys=True, encoding="utf-8")) request.finish() return file_path = str(data[0][0]) + "/" + fileid if not os.path.exists(file_path): error = { 'status': {'error': "Invalid Request", 'message': "File does not exist."} } request.write(json.dumps(error, sort_keys=True, encoding="utf-8")) request.finish() request.write(str(data[0][1])) # writing key iv_plain = self.sid.decryptData(data[0][2]) # writing IV print iv_plain iv = self.sid.encryptData(iv_plain, pubkey) request.write(iv) file = open(file_path ,"r") sender = FileSender() sender.CHUNK_SIZE = 200 df = sender.beginFileTransfer(file, request) df.addErrback(err) df.addCallback(finishTrnf_cb, file)
def connectionMade(self): self.transport.write('%s\r\n' % (self.insize)) sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 d = sender.beginFileTransfer(self.infile, self.transport, self._monitor) d.addCallback(self.cbTransferCompleted)
def lineReceived(self, line): print 'sender %s' % line line = line.strip() if line == OK: sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 deffered = sender.beginFileTransfer(self.fileObj, self.transport, None) deffered.addCallback(self.success).addErrback(self.error)
def connectionMade(self): """ """ instruction = dict(file_size=self.insize, original_file_path=self.path) instruction = json.dumps(instruction) self.transport.write(instruction+'\r\n') sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 d = sender.beginFileTransfer(self.infile, self.transport, self._monitor) d.addCallback(self.cbTransferCompleted)
def _start_transfer(self, _discard): if self.fileObj is None: self._failure((2, "NO_FILE_LOADED")) else: logging.info("Started file transfer") self.busy = True fileProducer = FileSender() fileProducer.CHUNK_SIZE = 65536 def_obj = fileProducer.beginFileTransfer(file=self.fileObj, consumer=self.transport) def_obj.addCallback(self._done_transfer, True) def_obj.addErrback(self._done_transfer, False)
def connectionMade(self): """ """ fileHeader = session.Message(session.fileMsg) fileHeader.fileSize = self.insize fileHeader.fileName = self.relPath fileHeader.sessionID = self.sessionID self.transport.write(fileHeader.serialize() + '\r\n') sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 d = sender.beginFileTransfer(self.infile, self.transport, self._monitor) d.addCallback(self.cbTransferCompleted)
def _start_transfer(self, _discard): if self.fileObj is None: self._failure((2, 'NO_FILE_LOADED')) else: logging.info('Started file transfer') self.busy = True fileProducer = FileSender() fileProducer.CHUNK_SIZE = 65536 def_obj = fileProducer.beginFileTransfer(file=self.fileObj, consumer=self.transport) def_obj.addCallback(self._done_transfer, True) def_obj.addErrback(self._done_transfer, False)
def connectionMade(self): """ """ # try: instruction = dict(file_size=self.insize, original_file_path=self.path) instruction = json.dumps(instruction) # except ValueError: # "Accepting as delete command instead..." self.transport.write(instruction + "\r\n") sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 d = sender.beginFileTransfer(self.infile, self.transport, self._monitor) d.addCallback(self.cbTransferCompleted)
def connectionMade(self): """ """ self.logger = MessageLogger(open('log\client_logger.txt', "a")) self.logger.log("[connected at %s]" % time.asctime(time.localtime(time.time()))) instruction = dict(file_size=self.insize, original_file_path=self.path) instruction = json.dumps(instruction) self.transport.write(instruction + '\r\n') sender = FileSender() sender.CHUNK_SIZE = 2**16 d = sender.beginFileTransfer(self.infile, self.transport, self._monitor) d.addCallback(self.cbTransferCompleted)
def sendFile(self, filename, callback = lambda x,y: (x,y)): d = self._mkHeaders(filename) print d['size'] transport = self.transport end_callback = self.end_callback class ProgressMeter(object): def __init__(self, filename, callback): self.transferred = 0 self.full = d['size'] self.callback = callback self.cancelled = False def monitor(self, data): if self.cancelled: print 'progressmeter: cancelled!' transport.unregisterProducer() transport.loseConnection() end_callback() self.transferred += len(data) self.callback(self.transferred, self.full) return data self.fp = urllib.urlopen(filename) self.sentBytes = 0 self.transport.write(base64.encodestring(json.dumps(d))) self.transport.write('\r\n') sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 pm = ProgressMeter(filename, callback) d = sender.beginFileTransfer(self.fp, self.transport, pm.monitor) d.addCallback(self.done) return pm
def getshared_cb(data): if len(data) == 0: error = { 'status': { 'error': "Invalid Request", 'message': "File does not exist." } } request.write( json.dumps(error, sort_keys=True, encoding="utf-8")) request.finish() return file_path = str(data[0][0]) + "/" + fileid if not os.path.exists(file_path): error = { 'status': { 'error': "Invalid Request", 'message': "File does not exist." } } request.write( json.dumps(error, sort_keys=True, encoding="utf-8")) request.finish() return request.write(str(data[0][1])) # writing key iv_plain = self.sid.decryptData(data[0][2]) # writing IV #print iv_plain iv = self.sid.encryptData(iv_plain, pubkey) request.write(iv) file = open(file_path, "r") sender = FileSender() sender.CHUNK_SIZE = 200 df = sender.beginFileTransfer(file, request) df.addErrback(err) df.addCallback(finishTrnf_cb, file)
def send_file(result): filename = result[0][0].strip() filepath = os.path.join(common.file_dir, filename) print "send file ", filepath try: outfile = open(filepath, 'rb') except IOError: print "no such file" return else: s = outfile.read() outfile.seek(0) filesize = len(s) crc = crc32(s) line = '2#%s|%s|%s' % (filename, filesize, crc) self.sendLine(line) def transfer_completed(lastsent): outfile.close() sender = FileSender() sender.CHUNK_SIZE = common.chunk_size d = sender.beginFileTransfer(outfile, self.transport) d.addCallback(transfer_completed)
def send_file(result): filename = result[0][0].strip() filepath = os.path.join(common.file_dir, filename) print "send file ", filepath try: outfile = open(filepath, 'rb') except IOError: print "no such file" return else: s = outfile.read() outfile.seek(0) filesize = len(s) crc = crc32(s) line = '2#%s|%s|%s' % (filename, filesize, crc) self.sendLine(line) def transfer_completed(lastsent): outfile.close() sender = FileSender() sender.CHUNK_SIZE = common.chunk_size d = sender.beginFileTransfer(outfile, self.transport) d.addCallback(transfer_completed)
def upload_file(file, transport): sender = FileSender() sender.CHUNK_SIZE = 2 ** 16 return sender.beginFileTransfer(file, transport)
def startCopying(self, msg): def _done(ign, src, dst, f): log.msg("File copied successfully %(src)s -> %(dst)s" % { 'src': src, 'dst': dst }) self.publish('file-transfer-ack', fileTransferReq, id=msg.id.getValue(), state=0, table=msg.table.getValue()) def _err_done(reason, src, dst, sendreq=None): log.msg( "File transfer error %(src)s -> %(dst)s. Reason: %(reason)s" % { 'src': src, 'dst': dst, 'reason': reason.getErrorMessage() }, logLevel=logging.ERROR) if sendreq: self.publish('file-transfer-ack', fileTransferReq, id=msg.id.getValue(), state=1, table=msg.table.getValue()) return defer.fail(reason) if self.working > self.QUEUESIZE: self.queue.put(msg) return self.incpendingqueue(None, msg=msg) srcfile = msg.src.getValue() dstfile = msg.dst.getValue() s = FilePath(srcfile) d = FilePath(dstfile) if s.exists() and d.exists(): if s.getsize() == d.getsize(): log.msg("Ignore coping, files have the same size: %s -> %s" % (srcfile, dstfile)) self.decpendingqueue("SAME_SIZE", msg=msg) self.publish('file-transfer-ack', fileTransferReq, id=msg.id.getValue(), state=0, table=msg.table.getValue()) return src = FileSender() if self.conf.get('transport', 'CHUNK_SIZE_POWER'): src.CHUNK_SIZE = 2**int( self.conf.get('transport', 'CHUNK_SIZE_POWER')) try: f = open(srcfile, 'r') except Exception, e: log.msg(str(e), logLevel=logging.ERROR) # f=None return _err_done(Failure(e), srcfile, dstfile, 'err').addBoth(self.decpendingqueue, msg=msg)