-
-
Notifications
You must be signed in to change notification settings - Fork 4.8k
fs: add Resumer interface #4547
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
|
This looks very nice :-) I'm just in the middle of making the 1.53 release - I will review in detail after that is done. |
ncw
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
v1.53 is out the door! Apologies for the delay in reviewing.
I think this is a good start - thank you :-)
I wrote lots of comments inline.
Can you factor the ~100 extra lines in operations.Copy so we try to keep things readable.
We'll need to write tests too, so having functions we can test individually will be very useful :-)
This comment has been minimized.
This comment has been minimized.
17e21a4 to
b738ba2
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
@ivandeex @ncw All inline comments have been addressed except for this one which I'd like to hear your feedback on. #4547 (comment) |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Specific questions about the upload cache:
UPDATE 2021-03-17
|
|
As to why I care about resumable accrued (rolling) checksums (if supported by a backend),
EDIT if backend does not support it, its interface will return a nil accrued hashsum. |
This comment has been minimized.
This comment has been minimized.
d14ff61 to
bcc590a
Compare
|
@ncw @mcalman |
|
My objections to this PR seem to have been collapsed under loads of commit messages. |
|
This "loads of commits and messages" is called working on your PR. |
bcc590a to
667fb97
Compare
Added an interface and machinery for resuming failed uploads. Implemented this interface in the local backend. Later on it can be implemented by any supporting backend. Fixes rclone#87
- report errors if any - prevent double invocation - prefer saved hash type when many are supported
667fb97 to
604dc4d
Compare
|
This PR is waiting for @ncw to review which is a spin off from which is stuck forever. Unfortunately #5299 is pretty far from production and altogether invasive on core parts of rclone. As far as I can see @ncw actively discussed early design of that PR. In the meantime I have added the patch from on top of this one - at any rate I will consider all parts together. I do not expect the solution to come before the 1.58 release so I expect the resume feature to appear in 1.59. @innovate-invent This patch will not be merged on rclone master branch before that, which is at least 3 months from now. However, the patch of this PR has already solved me hours of work time by resuming downloads ("uploads" onto local backend) failed due to network hiccups. @mcalman By the way, you can open pull requests against the beta branch https://github.com/rclone/rclone/commits/resume cc @ncw |
|
@mcalman I am sorry about the situation |
|
The PR branch as well as https://beta.rclone.org/branch/resume/ is rebased on the current master. |
@ivandeex Was just wondering what your status is. Do you still think it is likely the resume feature will be included in 1.59? |
|
I'm hit heavily by anti-Rus sanctions, plans broken. Most of the short-term time I'll be recovering whatever I can w.r.t. migrating work env, accounts and payments etc. Can't promise anything concrete a.t.m. |
|
Hello, |
|
The rclone beta that includes the resumer interface posted at https://beta.rclone.org/branch/resume/ is quite out of date now, only at 1.58 while stable is at 1.62.2 with 1.63 just over the horizon. Any chance of getting the resume branch back in line with the master branch? |
Added an interface for resuming failed uploads. Later on this interface
can be implemented by any backend where resumes are possible.
#87
What is the purpose of this change?
Adds an optional interface for resuming uploads that can later be implemented by any backend where resuming uploads is possible. Once implemented by a backend, this will allow uploads to continue after a failure, even when restarting Rclone operations.
Was the change discussed in an issue or in the forum before?
#87
https://forum.rclone.org/t/drive-resume-resumable-upload-implementation/18289/4
https://forum.rclone.org/t/chunker-resume-upload-contribution/18571
Checklist