From d8855b21ebd72734c960964c164979ca1947796e Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Fri, 24 Nov 2023 15:49:33 +0000 Subject: [PATCH] serve s3: document multipart copy doesn't work #7454 This puts in a workaround for the tests also --- cmd/serve/s3/s3_test.go | 2 +- cmd/serve/s3/serve_s3.md | 15 +++++++++++++-- fstest/fstests/fstests.go | 4 ++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/cmd/serve/s3/s3_test.go b/cmd/serve/s3/s3_test.go index a28e9929e..2622d5fbc 100644 --- a/cmd/serve/s3/s3_test.go +++ b/cmd/serve/s3/s3_test.go @@ -113,7 +113,7 @@ func RunS3UnitTests(t *testing.T, name string, start servetest.StartFn) { if *fstest.Verbose { args = append(args, "-verbose") } - remoteName := name + "test:" + remoteName := "serve" + name + ":" args = append(args, "-remote", remoteName) args = append(args, "-run", "^TestIntegration$") args = append(args, "-list-retries", fmt.Sprint(*fstest.ListRetries)) diff --git a/cmd/serve/s3/serve_s3.md b/cmd/serve/s3/serve_s3.md index c74b7bf43..65445ff1c 100644 --- a/cmd/serve/s3/serve_s3.md +++ b/cmd/serve/s3/serve_s3.md @@ -55,8 +55,19 @@ Note that setting `disable_multipart_uploads = true` is to work around ### Bugs When uploading multipart files `serve s3` holds all the parts in -memory. This is a limitaton of the library rclone uses for serving S3 -and will hopefully be fixed at some point. +memory (see [#7453](https://github.com/rclone/rclone/issues/7453)). +This is a limitaton of the library rclone uses for serving S3 and will +hopefully be fixed at some point. + +Multipart server side copies do not work (see +[#7454](https://github.com/rclone/rclone/issues/7454)). These take a +very long time and eventually fail. The default threshold for +multipart server side copies is 5G which is the maximum it can be, so +files above this side will fail to be server side copied. + +For a current list of `serve s3` bugs see the [serve +s3](https://github.com/rclone/rclone/labels/serve%20s3) bug category +on GitHub. ### Limitations diff --git a/fstest/fstests/fstests.go b/fstest/fstests/fstests.go index 0eae78fd3..80cc712c7 100644 --- a/fstest/fstests/fstests.go +++ b/fstest/fstests/fstests.go @@ -2146,6 +2146,10 @@ func Run(t *testing.T, opt *Opt) { t.Skip("skipping as ChunkedUpload.Skip is set") } + if strings.HasPrefix(f.Name(), "serves3") { + t.Skip("FIXME skip test - see #7454") + } + do, _ := f.(SetCopyCutoffer) if do == nil { t.Skipf("%T does not implement SetCopyCutoff", f)