1
0
mirror of https://github.com/rclone/rclone.git synced 2026-02-05 11:13:21 +00:00

Compare commits

..

5 Commits

Author SHA1 Message Date
Nick Craig-Wood
78d0f48b98 Version v1.62.2 2023-03-16 09:42:50 +00:00
Lesmiscore
785c6d5ab6 ftp: fix 426 errors on downloads with vsftpd
Sometimes vsftpd returns a 426 error when closing the stream even when
all the data has been transferred successfully. This is some TLS
protocol mismatch.

Rclone has code to deal with this already, but the error returned from
Close was wrapped in a multierror so the detection didn't work.

This properly extract `textproto.Error` from the errors returned by
`github.com/jlaffaye/ftp` in all the cases.

See: https://forum.rclone.org/t/vsftpd-vs-rclone-part-2/36774
2023-03-16 09:36:05 +00:00
asdffdsazqqq
f99d4cd5c7 docs: fix size documentation
change `Google Drive` to `Google Docs`
2023-03-16 09:36:05 +00:00
Nick Craig-Wood
0056c22c6f docker volume plugin: add missing fuse3 dependency #6844 2023-03-16 09:36:05 +00:00
Nick Craig-Wood
4452be379d Start v1.62.2-DEV development 2023-03-15 14:51:48 +00:00
13 changed files with 98 additions and 38 deletions

19
MANUAL.html generated
View File

@@ -19,7 +19,7 @@
<header id="title-block-header">
<h1 class="title">rclone(1) User Manual</h1>
<p class="author">Nick Craig-Wood</p>
<p class="date">Mar 15, 2023</p>
<p class="date">Mar 16, 2023</p>
</header>
<h1 id="rclone-syncs-your-files-to-cloud-storage">Rclone syncs your files to cloud storage</h1>
<p><img width="50%" src="https://rclone.org/img/logo_on_light__horizontal_color.svg" alt="rclone logo" style="float:right; padding: 5px;" ></p>
@@ -785,7 +785,7 @@ rclone --dry-run --min-size 100M delete remote:path</code></pre>
<p>Counts objects in the path and calculates the total size. Prints the result to standard output.</p>
<p>By default the output is in human-readable format, but shows values in both human-readable format as well as the raw numbers (global option <code>--human-readable</code> is not considered). Use option <code>--json</code> to format output as JSON instead.</p>
<p>Recurses by default, use <code>--max-depth 1</code> to stop the recursion.</p>
<p>Some backends do not always provide file sizes, see for example <a href="https://rclone.org/googlephotos/#size">Google Photos</a> and <a href="https://rclone.org/drive/#limitations-of-google-docs">Google Drive</a>. Rclone will then show a notice in the log indicating how many such files were encountered, and count them in as empty files in the output of the size command.</p>
<p>Some backends do not always provide file sizes, see for example <a href="https://rclone.org/googlephotos/#size">Google Photos</a> and <a href="https://rclone.org/drive/#limitations-of-google-docs">Google Docs</a>. Rclone will then show a notice in the log indicating how many such files were encountered, and count them in as empty files in the output of the size command.</p>
<pre><code>rclone size remote:path [flags]</code></pre>
<h2 id="options-14">Options</h2>
<pre><code> -h, --help help for size
@@ -8642,7 +8642,7 @@ Showing nodes accounting for 1537.03kB, 100% of 1537.03kB total
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default &quot;rclone/v1.62.1&quot;)
--user-agent string Set the user-agent to a specified string (default &quot;rclone/v1.62.2&quot;)
-v, --verbose count Print lots more stuff (repeat for more)</code></pre>
<h2 id="backend-flags">Backend Flags</h2>
<p>These flags are available for every command. They control the backends and may be set in the config file.</p>
@@ -29922,6 +29922,19 @@ $ tree /tmp/b
<li>"error": return an error based on option value</li>
</ul>
<h1 id="changelog">Changelog</h1>
<h2 id="v1.62.2---2023-03-16">v1.62.2 - 2023-03-16</h2>
<p><a href="https://github.com/rclone/rclone/compare/v1.62.1...v1.62.2">See commits</a></p>
<ul>
<li>Bug Fixes
<ul>
<li>docker volume plugin: Add missing fuse3 dependency (Nick Craig-Wood)</li>
<li>docs: Fix size documentation (asdffdsazqqq)</li>
</ul></li>
<li>FTP
<ul>
<li>Fix 426 errors on downloads with vsftpd (Lesmiscore)</li>
</ul></li>
</ul>
<h2 id="v1.62.1---2023-03-15">v1.62.1 - 2023-03-15</h2>
<p><a href="https://github.com/rclone/rclone/compare/v1.62.0...v1.62.1">See commits</a></p>
<ul>

16
MANUAL.md generated
View File

@@ -1,6 +1,6 @@
% rclone(1) User Manual
% Nick Craig-Wood
% Mar 15, 2023
% Mar 16, 2023
# Rclone syncs your files to cloud storage
@@ -1593,7 +1593,7 @@ recursion.
Some backends do not always provide file sizes, see for example
[Google Photos](https://rclone.org/googlephotos/#size) and
[Google Drive](https://rclone.org/drive/#limitations-of-google-docs).
[Google Docs](https://rclone.org/drive/#limitations-of-google-docs).
Rclone will then show a notice in the log indicating how many such
files were encountered, and count them in as empty files in the output
of the size command.
@@ -14940,7 +14940,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.2")
-v, --verbose count Print lots more stuff (repeat for more)
```
@@ -42464,6 +42464,16 @@ Options:
# Changelog
## v1.62.2 - 2023-03-16
[See commits](https://github.com/rclone/rclone/compare/v1.62.1...v1.62.2)
* Bug Fixes
* docker volume plugin: Add missing fuse3 dependency (Nick Craig-Wood)
* docs: Fix size documentation (asdffdsazqqq)
* FTP
* Fix 426 errors on downloads with vsftpd (Lesmiscore)
## v1.62.1 - 2023-03-15
[See commits](https://github.com/rclone/rclone/compare/v1.62.0...v1.62.1)

17
MANUAL.txt generated
View File

@@ -1,6 +1,6 @@
rclone(1) User Manual
Nick Craig-Wood
Mar 15, 2023
Mar 16, 2023
Rclone syncs your files to cloud storage
@@ -1472,7 +1472,7 @@ as JSON instead.
Recurses by default, use --max-depth 1 to stop the recursion.
Some backends do not always provide file sizes, see for example Google
Photos and Google Drive. Rclone will then show a notice in the log
Photos and Google Docs. Rclone will then show a notice in the log
indicating how many such files were encountered, and count them in as
empty files in the output of the size command.
@@ -14483,7 +14483,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.2")
-v, --verbose count Print lots more stuff (repeat for more)
Backend Flags
@@ -41964,6 +41964,17 @@ Options:
Changelog
v1.62.2 - 2023-03-16
See commits
- Bug Fixes
- docker volume plugin: Add missing fuse3 dependency (Nick
Craig-Wood)
- docs: Fix size documentation (asdffdsazqqq)
- FTP
- Fix 426 errors on downloads with vsftpd (Lesmiscore)
v1.62.1 - 2023-03-15
See commits

View File

@@ -1 +1 @@
v1.62.1
v1.62.2

View File

@@ -315,10 +315,17 @@ func (dl *debugLog) Write(p []byte) (n int, err error) {
return len(p), nil
}
// Return a *textproto.Error if err contains one or nil otherwise
func textprotoError(err error) (errX *textproto.Error) {
if errors.As(err, &errX) {
return errX
}
return nil
}
// returns true if this FTP error should be retried
func isRetriableFtpError(err error) bool {
switch errX := err.(type) {
case *textproto.Error:
if errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusNotAvailable, ftp.StatusTransfertAborted:
return true
@@ -471,8 +478,7 @@ func (f *Fs) putFtpConnection(pc **ftp.ServerConn, err error) {
*pc = nil
if err != nil {
// If not a regular FTP error code then check the connection
var tpErr *textproto.Error
if !errors.As(err, &tpErr) {
if tpErr := textprotoError(err); tpErr != nil {
nopErr := c.NoOp()
if nopErr != nil {
fs.Debugf(f, "Connection failed, closing: %v", nopErr)
@@ -621,8 +627,7 @@ func (f *Fs) Shutdown(ctx context.Context) error {
// translateErrorFile turns FTP errors into rclone errors if possible for a file
func translateErrorFile(err error) error {
switch errX := err.(type) {
case *textproto.Error:
if errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusFileUnavailable, ftp.StatusFileActionIgnored:
err = fs.ErrorObjectNotFound
@@ -633,8 +638,7 @@ func translateErrorFile(err error) error {
// translateErrorDir turns FTP errors into rclone errors if possible for a directory
func translateErrorDir(err error) error {
switch errX := err.(type) {
case *textproto.Error:
if errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusFileUnavailable, ftp.StatusFileActionIgnored:
err = fs.ErrorDirNotFound
@@ -925,8 +929,7 @@ func (f *Fs) mkdir(ctx context.Context, abspath string) error {
}
err = c.MakeDir(f.dirFromStandardPath(abspath))
f.putFtpConnection(&c, err)
switch errX := err.(type) {
case *textproto.Error:
if errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusFileUnavailable: // dir already exists: see issue #2181
err = nil
@@ -1167,8 +1170,7 @@ func (f *ftpReadCloser) Close() error {
// mask the error if it was caused by a premature close
// NB StatusAboutToSend is to work around a bug in pureftpd
// See: https://github.com/rclone/rclone/issues/3445#issuecomment-521654257
switch errX := err.(type) {
case *textproto.Error:
if errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusTransfertAborted, ftp.StatusFileUnavailable, ftp.StatusAboutToSend:
err = nil
@@ -1246,13 +1248,10 @@ func (o *Object) Update(ctx context.Context, in io.Reader, src fs.ObjectInfo, op
}
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 errX := textprotoError(err); errX != nil {
switch errX.Code {
case ftp.StatusRequestedFileActionOK:
err = nil
}
}
if err != nil {

View File

@@ -39,7 +39,7 @@ recursion.
Some backends do not always provide file sizes, see for example
[Google Photos](/googlephotos/#size) and
[Google Drive](/drive/#limitations-of-google-docs).
[Google Docs](/drive/#limitations-of-google-docs).
Rclone will then show a notice in the log indicating how many such
files were encountered, and count them in as empty files in the output
of the size command.

View File

@@ -8,7 +8,7 @@ FROM alpine:latest
COPY --from=binaries /usr/local/bin/rclone /usr/bin/rclone
RUN mkdir -p /data/config /data/cache /mnt \
&& apk --no-cache add ca-certificates fuse tzdata \
&& apk --no-cache add ca-certificates fuse3 tzdata \
&& echo "user_allow_other" >> /etc/fuse.conf \
&& rclone version

View File

@@ -5,6 +5,16 @@ description: "Rclone Changelog"
# Changelog
## v1.62.2 - 2023-03-16
[See commits](https://github.com/rclone/rclone/compare/v1.62.1...v1.62.2)
* Bug Fixes
* docker volume plugin: Add missing fuse3 dependency (Nick Craig-Wood)
* docs: Fix size documentation (asdffdsazqqq)
* FTP
* Fix 426 errors on downloads with vsftpd (Lesmiscore)
## v1.62.1 - 2023-03-15
[See commits](https://github.com/rclone/rclone/compare/v1.62.0...v1.62.1)

View File

@@ -26,7 +26,7 @@ recursion.
Some backends do not always provide file sizes, see for example
[Google Photos](/googlephotos/#size) and
[Google Drive](/drive/#limitations-of-google-docs).
[Google Docs](/drive/#limitations-of-google-docs).
Rclone will then show a notice in the log indicating how many such
files were encountered, and count them in as empty files in the output
of the size command.

View File

@@ -171,7 +171,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.1")
--user-agent string Set the user-agent to a specified string (default "rclone/v1.62.2")
-v, --verbose count Print lots more stuff (repeat for more)
```

View File

@@ -1 +1 @@
v1.62.1
v1.62.2

View File

@@ -1,4 +1,4 @@
package fs
// VersionTag of rclone
var VersionTag = "v1.62.1"
var VersionTag = "v1.62.2"

23
rclone.1 generated
View File

@@ -1,7 +1,7 @@
.\"t
.\" Automatically generated by Pandoc 2.9.2.1
.\"
.TH "rclone" "1" "Mar 15, 2023" "User Manual" ""
.TH "rclone" "1" "Mar 16, 2023" "User Manual" ""
.hy
.SH Rclone syncs your files to cloud storage
.PP
@@ -2078,7 +2078,7 @@ Recurses by default, use \f[C]--max-depth 1\f[R] to stop the recursion.
.PP
Some backends do not always provide file sizes, see for example Google
Photos (https://rclone.org/googlephotos/#size) and Google
Drive (https://rclone.org/drive/#limitations-of-google-docs).
Docs (https://rclone.org/drive/#limitations-of-google-docs).
Rclone will then show a notice in the log indicating how many such files
were encountered, and count them in as empty files in the output of the
size command.
@@ -20461,7 +20461,7 @@ These flags are available for every command.
--use-json-log Use json log format
--use-mmap Use mmap allocator (see docs)
--use-server-modtime Use server modified time instead of object metadata
--user-agent string Set the user-agent to a specified string (default \[dq]rclone/v1.62.1\[dq])
--user-agent string Set the user-agent to a specified string (default \[dq]rclone/v1.62.2\[dq])
-v, --verbose count Print lots more stuff (repeat for more)
\f[R]
.fi
@@ -58046,6 +58046,23 @@ Options:
.IP \[bu] 2
\[dq]error\[dq]: return an error based on option value
.SH Changelog
.SS v1.62.2 - 2023-03-16
.PP
See commits (https://github.com/rclone/rclone/compare/v1.62.1...v1.62.2)
.IP \[bu] 2
Bug Fixes
.RS 2
.IP \[bu] 2
docker volume plugin: Add missing fuse3 dependency (Nick Craig-Wood)
.IP \[bu] 2
docs: Fix size documentation (asdffdsazqqq)
.RE
.IP \[bu] 2
FTP
.RS 2
.IP \[bu] 2
Fix 426 errors on downloads with vsftpd (Lesmiscore)
.RE
.SS v1.62.1 - 2023-03-15
.PP
See commits (https://github.com/rclone/rclone/compare/v1.62.0...v1.62.1)