daniel wrote: > well, I'm trying to use ftplib to upload data that received from > socket, and the application is required to restart the transfer at a > specific interval so as to generate a different target file on the > server to store subsequent data.
> the problem is 'storbinary' accepts only file-like object "storbinary" works with anything that has a "read" method that takes a buffer size, so you can wrap the source stream in something like: ## # File wrapper that reads no more than 'bytes' data from a stream. Sets # the 'eof' attribute to true if the stream ends. class FileWrapper: def __init__(self, fp, bytes): self.fp = fp self.bytes = bytes self.eof = False def read(self, bufsize): if self.bytes <= 0: return "" data = self.fp.read(min(bufsize, self.bytes)) if not data: self.eof = True self.bytes -= len(data) return data source = open(...) while 1: cmd = "STOR " + generate_file_name() f = FileWrapper(source, 1000000) ftp.storbinary(cmd, f) if f.eof: break </F> -- http://mail.python.org/mailman/listinfo/python-list