From 76ea716abfcc0c7dc18ecfd1fb609a6b6a89f101 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Wed, 16 Jun 2021 14:34:53 +0100 Subject: [PATCH] ftp: make upload error 250 indicate success Some servers seem to send return code 250 to indicate successful upload - previously rclone was treating this as an error. See: https://forum.rclone.org/t/transfer-on-mega-in-ftp-mode-is-not-working/24642/ --- backend/ftp/ftp.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/ftp/ftp.go b/backend/ftp/ftp.go index ab90c1e95..28db54430 100644 --- a/backend/ftp/ftp.go +++ b/backend/ftp/ftp.go @@ -1050,6 +1050,16 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op return errors.Wrap(err, "Update") } err = c.Stor(o.fs.opt.Enc.FromStandardPath(path), in) + // Ignore error 250 here - send by some servers + if err != nil { + switch errX := err.(type) { + case *textproto.Error: + switch errX.Code { + case ftp.StatusRequestedFileActionOK: + err = nil + } + } + } if err != nil { _ = c.Quit() // toss this connection to avoid sync errors remove()