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
rclone mount - backends without support for DirMove and Move do not fall back to copy or upload / download #2539
Comments
I noticed on the website, this is the stated method of execution, but it does not actually work on google cloud storage.
rclone v1.43
|
Also tried without any cache options -- same result (failure). |
I think I am getting a similar error (with a dropbox mount). I am moving one file on another that already exists.
My mount options are Actually, I think my issue is #1965
|
Sorry, yeah, I updated my comment above noting the #1965 connection but it was after I first posted :/ I just tried with dropbox and I am getting an error. This is the mounting:
The error above came when I did:
I am quite new at rclone, so there might be some helpful other flags but with the reasonably bare mount command I am seeing an error. Oh... so, interesting. I just did the same thing with Mega and it worked:
It also works with pCloud:
It also worked with Google Drive. Tried Box and it did not work. Huh, so it seems to be only Box and Dropbox (of the ones I tested) that are giving me issues. All of the above is based on:
If you want me to test a PR, I am happy to do it. |
I tried a few more times in different incantations and it seems to be |
@brechmos great testing. Can you put your findings in a new issue please - I think your problem is unrelated to this issue. It seems to be that backends are inconsistent about whether they allow a file to be copied over or not. |
@ncw your right does look like a dupe. The difference is this is Google Cloud Storage. Not sure how your tracking things. (Per feature, per backend, etc.) Feel free to close. Looking forward to this being done. Will make using mount much more like a real fs for those backends that don't support move. |
I think this issue is now fixed with
|
To make mount operate more like a real dir wouldn't we need to make sure
dirmove failed back? At least make it a flag like vfs so you can force a
more filesystem type experience?
…On Sat, Sep 29, 2018, 7:11 AM Nick Craig-Wood ***@***.***> wrote:
I think this issue is now fixed with Move falling back to Copy if not
availabe.
DirMove does not fall back to Move or Copy yet though. I'm uncertain as
to whether that is a good idea or not as it might involve renaming 1000s of
files for one directory rename.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#2539 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABfZI6Gy6wpbRnJJp-uxi_5Xmn-i1DHCks5uf3-AgaJpZM4Wb0hd>
.
|
@tcf909 wrote:
I guess it is a matter of tradeoffs... To rename a directory rclone will
At the moment rclone mount will stop at step 1) above. I think it could go down to step 3) possibly, but step 4) I think is too much, at least without a flag. To put those into perspective let's say we have a directory with 1000 files and 100GB of data in. This is what rclone does for each of those steps
What do you think rclone should do? |
I agree with your analysis. The final step is too much without a flag.
If you were able to cover the first three, and cover 22 of the 24 backends
that would be great.
…On Sun, Sep 30, 2018, 1:36 AM Nick Craig-Wood ***@***.***> wrote:
@tcf909 <https://github.com/tcf909> wrote:
To make mount operate more like a real dir wouldn't we need to make sure
dirmove failed back? At least make it a flag like vfs so you can force a
more filesystem type experience?
I guess it is a matter of tradeoffs...
To rename a directory rclone will
1. Call DirMove if it is implemented (see overview table
<https://rclone.org/overview/#optional-features> for which backends do
implement it)
- works for 12/21 of backends
1. Call Move on each file if available
- works for another 0/21 backends (all the backends which implement
Move implement DirMove)
1. Call Copy then Delete on each file if available
- works for another 6/21 backends
1. Download then upload each file
- works for the remaining 2/21 backends (b2 & yandex)
At the moment rclone mount will stop at step 1) above. I think it could go
down to step 3) possibly, but step 4) I think is too much, at least without
a flag.
To put those into perspective let's say we have a directory with 1000
files and 100GB of data in. This is what rclone does for each of those steps
1. Do one API call
2. Do 1000 API calls
3. Do 2000 API calls
4. Do 3000 API calls, download 100GB and upload 100GB of data
What do you think rclone should do?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2539 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/ABfZI23xCWaerYtR94FlOMcS5xkunBgcks5ugIJ-gaJpZM4Wb0hd>
.
|
Hmm, this is harder than it looks! The obvious thing to do is re-use the internal syncing routines, however they don't take a directory path so they need to be re-worked first which is a much bigger job! |
There are applications which primarily save data but have certain config files with a move-operation on them. Those files are small and only a few - but the software fails without being able to mv them. I tried running those on b2 and it fails. It would be awesome if rclone had a workaround for this, even knowing that it can be very expensive sometimes. |
@dragetd wrote:
I see your point. It would be very easy to implement, just turn this into a log of some kind https://github.com/ncw/rclone/blob/3220acc72900aa4d56b36871bae94e9145b89cac/vfs/file.go#L112-L116 What would you think if rclone logged an ERROR for every rename something like
Instead of failing? Perhaps that would be the best approach overall and not need a flag to turn it off. Especially since b2 is the only backend that doens't do server side move or copy (apart from http which is read only): https://rclone.org/overview/#optional-features |
I contacted b2 support a few days ago. They said they are thinking about implementing a move API during this year. But I have given up on b2 anyways and just moved to wasabi.com - they offer similar prices and do support moving files around. :) -edit- little correction. DirMove is also not supported, also not via the caching provider. It again does not work with borg, which is a pity. :( |
This does the equivalent of sync.Move but is specialised for moving files in one backend.
…2539 Previously to this change, backends without the optional interface DirMove could not rename directories. This change uses the new operations.DirMove call to implement renaming directories which will fall back to Move/Copy as necessary.
This does the equivalent of sync.Move but is specialised for moving files in one backend.
…2539 Previously to this change, backends without the optional interface DirMove could not rename directories. This change uses the new operations.DirMove call to implement renaming directories which will fall back to Move/Copy as necessary.
I've merged this to master now which means it will be in the latest beta in 15-30 mins and released in v1.46 |
This does the equivalent of sync.Move but is specialised for moving files in one backend.
…clone#2539 Previously to this change, backends without the optional interface DirMove could not rename directories. This change uses the new operations.DirMove call to implement renaming directories which will fall back to Move/Copy as necessary.
This does the equivalent of sync.Move but is specialised for moving files in one backend.
…clone#2539 Previously to this change, backends without the optional interface DirMove could not rename directories. This change uses the new operations.DirMove call to implement renaming directories which will fall back to Move/Copy as necessary.
Unfortunately, this does not work as documented.
See below for details.
The text was updated successfully, but these errors were encountered: