restic/internal/backend
Alexander Neumann 99f7fd74e3 backend: Improve Save()
As mentioned in issue [#1560](https://github.com/restic/restic/pull/1560#issuecomment-364689346)
this changes the signature for `backend.Save()`. It now takes a
parameter of interface type `RewindReader`, so that the backend
implementations or our `RetryBackend` middleware can reset the reader to
the beginning and then retry an upload operation.

The `RewindReader` interface also provides a `Length()` method, which is
used in the backend to get the size of the data to be saved. This
removes several ugly hacks we had to do to pull the size back out of the
`io.Reader` passed to `Save()` before. In the `s3` and `rest` backend
this is actively used.
2018-03-03 15:49:44 +01:00
..
azure backend: Improve Save() 2018-03-03 15:49:44 +01:00
b2 backend: Improve Save() 2018-03-03 15:49:44 +01:00
gs backend: Improve Save() 2018-03-03 15:49:44 +01:00
local backend: Improve Save() 2018-03-03 15:49:44 +01:00
location s3: Remove default prefix "/restic" 2017-11-21 21:33:09 +01:00
mem backend: Improve Save() 2018-03-03 15:49:44 +01:00
rest backend: Improve Save() 2018-03-03 15:49:44 +01:00
s3 backend: Improve Save() 2018-03-03 15:49:44 +01:00
sftp backend: Improve Save() 2018-03-03 15:49:44 +01:00
swift backend: Improve Save() 2018-03-03 15:49:44 +01:00
test backend: Improve Save() 2018-03-03 15:49:44 +01:00
testdata Moves files 2017-07-23 14:19:13 +02:00
backend_error.go backend: Improve Save() 2018-03-03 15:49:44 +01:00
backend_retry.go backend: Improve Save() 2018-03-03 15:49:44 +01:00
backend_retry_test.go backend: Improve Save() 2018-03-03 15:49:44 +01:00
doc.go Moves files 2017-07-23 14:19:13 +02:00
http_transport.go Read TLS client cert and key from the same file 2018-01-27 14:02:01 +01:00
layout.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_default.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_rest.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_s3legacy.go backend: Only return top-level files for most dirs 2017-12-14 19:14:16 +01:00
layout_test.go Remove all dot-imports 2017-10-02 15:06:39 +02:00
paths.go Moves files 2017-07-23 14:19:13 +02:00
semaphore.go swift backend: fix premature release of semaphore in Load() & document 2017-11-02 12:38:17 -04:00
utils.go Reworked Backend.Load API to retry errors during ongoing download 2018-02-16 21:12:14 -05:00
utils_test.go backend: Improve Save() 2018-03-03 15:49:44 +01:00