Skip to content

Commit

Permalink
portable mode: add SFTP buffer size
Browse files Browse the repository at this point in the history
  • Loading branch information
drakkan committed Apr 7, 2021
1 parent b389f93 commit ed26d68
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/
Expand Down Expand Up @@ -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' }}
Expand Down Expand Up @@ -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
Expand Down
10 changes: 10 additions & 0 deletions cmd/portable.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ var (
portableSFTPFingerprints []string
portableSFTPPrefix string
portableSFTPDisableConcurrentReads bool
portableSFTPDBufferSize int64
portableCmd = &cobra.Command{
Use: "portable",
Short: "Serve a single directory",
Expand Down Expand Up @@ -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{
Expand Down Expand Up @@ -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)
}

Expand Down
8 changes: 8 additions & 0 deletions docs/portable-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit ed26d68

Please sign in to comment.