ftplib - Did the whole file get sent?

Sean DiZazzo half.italian at gmail.com
Sat Oct 23 12:03:47 EDT 2010


On Oct 22, 10:48 pm, Steven D'Aprano <st... at REMOVE-THIS-
cybersource.com.au> wrote:
> On Fri, 22 Oct 2010 22:03:38 -0700, Sean DiZazzo wrote:
> > How can I assure him (and the client) that the transfer completed
> > successfully like my log shows?
>
> "It has worked well for many years, there are no reported bugs in the ftp
> code
> [...]

Thanks for your advice Steven.  I agree with you,and did take that
approach to start with.  Then the request for the actual FTP "ack"
caught me off guard.  I had to break out Wireshark and run a few tests
just to make sure I knew exactly what I was talking about.

I think I will try to explain that asking for the "ack" is not really
a valid request.  Something like this:

"Technically, these messages are used only on the lowest level of the
FTP protocol itself.  Any client or library implementing FTP would be
sending these messages under the covers...in this case I think its
done in the socket library.  It is possible that there is a bug in the
Python FTP library, just like it's possible there is a bug in any
other FTP client.  Considering how long this library has been around
(~15-20 years), and how often it is used, it is very unlikely that a
bug causing a partial transfer but showing a success has managed to
stick around for so long."

Does that make sense?

> > Is ftplib reliable enough to say that if an exception is not thrown,
> > that the file was transferred in full?
>
> Python 2.4 is pretty old. Have you checked the bug tracker to see if
> there are any reported bugs in ftplib that might be relevant? Or the
> What's New for 2.5, 2.6 and 2.7? The source code for ftplib seems fairly
> straightforward to me -- if there was an error, I can't see that it could
> have been suppressed.
>
> But really, unless you can reproduce the error, I'd say the error lies
> elsewhere.
>
> --
> Steven

I'll check bugs and whats new before sending any response.  The more I
think about this, I am beginning to think that he is just trying to
find someone to blame for a problem, and has chosen me.

Thanks again.

~Sean



More information about the Python-list mailing list