From ed26d6894847884526c246f937e1e2cee7d91529 Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Wed, 7 Apr 2021 19:47:39 +0200 Subject: [PATCH] portable mode: add SFTP buffer size --- .github/workflows/development.yml | 3 +++ cmd/portable.go | 10 ++++++++++ docs/portable-mode.md | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/.github/workflows/development.yml b/.github/workflows/development.yml index 1527c95e6..675608973 100644 --- a/.github/workflows/development.yml +++ b/.github/workflows/development.yml @@ -74,6 +74,7 @@ jobs: run: | mkdir -p output/{init,bash_completion,zsh_completion} cp sftpgo output/ + chmod 755 output/sftpgo cp sftpgo.json output/ cp -r templates output/ cp -r static output/ @@ -222,6 +223,7 @@ jobs: ./sftpgo gen man -d output/man/man1 gzip output/man/man1/* cp sftpgo output/ + chmod 755 output/sftpgo - uses: uraimo/run-on-arch-action@v2.0.9 if: ${{ matrix.arch != 'amd64' }} @@ -259,6 +261,7 @@ jobs: ./sftpgo gen man -d output/man/man1 gzip output/man/man1/* cp sftpgo output/ + chmod 755 output/sftpgo - name: Upload build artifact uses: actions/upload-artifact@v2 diff --git a/cmd/portable.go b/cmd/portable.go index a20bf8fc0..542247546 100644 --- a/cmd/portable.go +++ b/cmd/portable.go @@ -73,6 +73,7 @@ var ( portableSFTPFingerprints []string portableSFTPPrefix string portableSFTPDisableConcurrentReads bool + portableSFTPDBufferSize int64 portableCmd = &cobra.Command{ Use: "portable", Short: "Serve a single directory", @@ -192,6 +193,7 @@ Please take a look at the usage below to customize the serving parameters`, Fingerprints: portableSFTPFingerprints, Prefix: portableSFTPPrefix, DisableCouncurrentReads: portableSFTPDisableConcurrentReads, + BufferSize: portableSFTPDBufferSize, }, }, Filters: dataprovider.UserFilters{ @@ -322,6 +324,14 @@ remote SFTP server`) portableCmd.Flags().BoolVar(&portableSFTPDisableConcurrentReads, "sftp-disable-concurrent-reads", false, `Concurrent reads are safe to use and disabling them will degrade performance. Disable for read once servers`) + portableCmd.Flags().Int64Var(&portableSFTPDBufferSize, "sftp-buffer-size", 0, `The size of the buffer (in MB) to use +for transfers. By enabling buffering, +the reads and writes, from/to the +remote SFTP server, are split in +multiple concurrent requests and this +allows data to be transferred at a +faster rate, over high latency networks, +by overlapping round-trip times`) rootCmd.AddCommand(portableCmd) } diff --git a/docs/portable-mode.md b/docs/portable-mode.md index b99562e82..5185f90cb 100644 --- a/docs/portable-mode.md +++ b/docs/portable-mode.md @@ -91,6 +91,14 @@ Flags: parallel (default 2) --s3-upload-part-size int The buffer size for multipart uploads (MB) (default 5) + --sftp-buffer-size int The size of the buffer (in MB) to use + for transfers. By enabling buffering, + the reads and writes, from/to the + remote SFTP server, are split in + multiple concurrent requests and this + allows data to be transferred at a + faster rate, over high latency networks, + by overlapping round-trip times --sftp-disable-concurrent-reads Concurrent reads are safe to use and disabling them will degrade performance. Disable for read once servers