rclone/backend/pcloud
Georg Welzel 40111ba5e1
plcoud: fix failing large file uploads - fixes #8147
This changes the OpenWriterAt implementation to make client/fd
handling atomic.

This PR stabilizes the situation of bigger files and multi-threaded
uploads. The root cause boils down to the old "fun" property of
pclouds fileops API: sessions are bound to TCP connections. This
forces us to use a http client with only a single connection
underneath.

With large files, we reuse the same connection for each chunk. If that
connection interrupts (e.g. because we are talking through the
internet), all chunks will fail. The probability for latter one
increases with larger files.

As the point of the whole multi-threaded feature was to speed-up large
files in the first place, this change pulls the client creation (and
hence connection handling) into each chunk. This should stabilize the
situation, as each chunk (and retry) gets its own connection.
2024-12-03 17:52:44 +00:00
..
api backend: pcloud: Implement OpenWriterAt feature 2024-08-22 23:42:32 +02:00
pcloud.go plcoud: fix failing large file uploads - fixes #8147 2024-12-03 17:52:44 +00:00
pcloud_test.go build: fix up package paths after repo move 2019-07-28 18:47:38 +01:00
writer_at.go plcoud: fix failing large file uploads - fixes #8147 2024-12-03 17:52:44 +00:00