astrada / google-drive-ocamlfuse

FUSE filesystem over Google Drive
https://astrada.github.io/google-drive-ocamlfuse/
MIT License
5.55k stars 353 forks source link

Shared with me folders with '(' or ')' #714

Open abacus-wove opened 3 years ago

abacus-wove commented 3 years ago

New user here.

I've added a 'shared with me' folder to my own drive. It was called 'SOMETHING (old version of F)'. I can see the name in the mounted directory but also get a 'ls: cannot access 'SOMETHING (old version of F)': Input/output error' message.

I've changed the name of the shared folder as well as the name of the folder as wel to 'SOMETHING'. Removed the old configuration and did an entire new setup. No dice.

I don't know where it goes wrong but my suspicious are that the naming of the folder has to do with this. It's either on Googles side or google-drive-ocamlfuse.

astrada commented 3 years ago

I cannot reproduce your issue. You should remount with -debug and check the log files for errors.

abacus-wove commented 3 years ago

Backtrace: [7.192351] TID=177: getattr /autorun.inf [7.192363] TID=176: [7.192379] TID=177: BEGIN: Getting metadata from context releasedir / O_RDONLY [7.192402] TID=177: END: Getting metadata: Valid [7.192423] TID=177: BEGIN: Loading resource /autorun.inf (trashed=false) from db [7.192435] TID=177: END: Loading resource /autorun.inf (trashed=false) from db: Not found [7.192440] TID=177: BEGIN: Loading resource / (trashed=false) from db [7.192449] TID=177: END: Loading resource / (trashed=false) from db: Found (id=2, state=Synchronized) [7.192467] TID=177: File not found: stat /autorun.inf [27.727839] TID=178: getattr / [27.727906] TID=178: BEGIN: Getting metadata from context [27.727922] TID=178: END: Getting metadata: Valid [27.727935] TID=178: BEGIN: Loading resource / (trashed=false) from db [27.727967] TID=178: END: Loading resource / (trashed=false) from db: Found (id=2, state=Synchronized) [27.982814] TID=179: opendir / O_RDONLY,O_NONBLOCK [27.982852] TID=179: BEGIN: Getting metadata from context [27.982857] TID=179: END: Getting metadata: Valid [27.982862] TID=179: BEGIN: Loading resource / (trashed=false) from db [27.982873] TID=179: END: Loading resource / (trashed=false) from db: Found (id=2, state=Synchronized) [27.982977] TID=180: readdir / 0 [27.982996] TID=180: BEGIN: Getting folder content (path=/, trashed=false) [27.983001] TID=180: BEGIN: Getting metadata from context [27.983006] TID=180: END: Getting metadata: Valid [27.983011] TID=180: BEGIN: Loading resource / (trashed=false) from db [27.983024] TID=180: END: Loading resource / (trashed=false) from db: Found (id=2, state=Synchronized) [27.983035] TID=180: BEGIN: Loading resource / (trashed=false) from db [27.983047] TID=180: END: Loading resource / (trashed=false) from db: Found (id=2, state=Synchronized) [27.983056] TID=180: BEGIN: Getting resources from db (parent path=/, trashed=false) [27.983067] TID=180: END: Getting resources from db (parent path=/, trashed=false) [27.984682] TID=182: getattr /.shared [27.984695] TID=182: BEGIN: Getting metadata from context [27.984699] TID=182: END: Getting metadata: Valid [27.984703] TID=182: BEGIN: Loading resource /.shared (trashed=false) from db [27.984709] TID=182: END: Loading resource /.shared (trashed=false) from db: Found (id=8, state=ToDownload) [27.984770] TID=183: getattr /.Trash [27.984783] TID=183: BEGIN: Getting metadata from context [27.984786] TID=183: END: Getting metadata: Valid [27.984791] TID=183: BEGIN: Loading resource / (trashed=true) from db [27.984801] TID=183: END: Loading resource / (trashed=true) from db: Found (id=1, state=ToDownload) [27.984857] TID=184: getattr /SOMETHING [27.984867] TID=184: BEGIN: Getting metadata from context [27.984871] TID=184: END: Getting metadata: Valid [27.984875] TID=184: BEGIN: Loading resource /SOMETHING (trashed=false) from db [27.984888] TID=184: END: Loading resource /SOMETHING (trashed=false) from db: Found (id=7, state=ToDownload) [27.984915] TID=184: BEGIN: Getting metadata from context [27.984923] TID=184: END: Getting metadata: Valid [27.984928] TID=184: BEGIN: Loading resource /SOMETHING (trashed=false) from db [27.984937] TID=184: END: Loading resource /SOMETHING (trashed=false) from db: Found (id=7, state=ToDownload) [27.984963] TID=184: BEGIN: Getting resource from server (remote id=1ZN4ZTRvpK7po5TiSlaYPApTP6jpCHo4E) [27.984971] TID=184: BEGIN: Getting file from server (remote id=1ZN4ZTRvpK7po5TiSlaYPApTP6jpCHo4E) [28.218812] TID=184: END: Getting file from server (remote id=1ZN4ZTRvpK7po5TiSlaYPApTP6jpCHo4E) [28.220161] TID=184: Error during request: hd [28.220174] TID=184: Giving up [28.220183] TID=184: Exception:Failure("hd")

astrada commented 3 years ago

It looks like the Drive API is not returning the data for that file. You should check curl.log.

jmjech commented 3 years ago

Hi, I have a similar issue. This works great with "My Drive", and I've been using it for quite awhile. But, I just tried to mount a shared drive and am having an issue with the "Shared drive not found" error message in the .log file. I'm using this on Ubuntu 20.04.2 LTS Here is what I do:

  1. google-drive-ocamlfuse -label test. I get the google sign in, click allow, and seem to get the appropriate authorizations.
  2. I find the shared drive ID by navigating to that folder in firefox, e.g., https://drive.google.com/drive/folders/abc123 (where I faked in abc123 for this issue as I don't want the drive shared with the world)
  3. I enter "abc123" in the .gdfuse/test/config file in the "team_drive_id" line, team_drive_id=abc123
  4. mkdir ~/junk (again, another fake name)
  5. google-drive-ocamlfuse -debug -label test ~/junk
  6. The drive mounts, but I get the "ls: cannot access '/home/mjech/junk': Input/output error" when I attempt to list the directory
  7. The .log file has (again, I substituted the real shared drive ID with "abc123") [9.004742] TID=33: Input/output error: opendir / [9.005523] TID=34: getattr /autorun.inf [9.005595] TID=34: BEGIN: Loading metadata from db [9.005626] TID=34: END: Getting metadata: Not found [9.005644] TID=34: BEGIN: Refreshing metadata [9.300317] TID=34: Service error: {"error":{"errors":[{"domain":"global","reason":"notFound","message":"Shared drive not found: abc123","locationType":"parameter","location":"driveId"}],"code":404,"message":"Share d drive not found: abc123"}}. [9.303974] TID=34: Input/output error: stat /autorun.inf
  8. So it seems the shared drive folder can not be found?
  9. I also have noticed that when I created the directory junk, the owners and permissions are all OK drwxrwxr-x 2 mjech mjech 4096 Jun 3 09:48 junk/, but after unsuccessfully attempting to mount the permissions look like d????????? ? ? ? ? ? junk/ and when I unmount the drive using fusermount -u ~/junk, the permission go back to OK. Any suggestions will be appreciated. Thanks, mike
astrada commented 3 years ago

I'm sorry, but that error is returned by the Drive API. Have you tried with rclone?

jmjech commented 3 years ago

Too bad. No, but I just looked at rclone and will try it. Many thanks for an awesome product for "my" drive!

boroli commented 3 years ago

I have exactly the same error message as jmjech, when I run in debug mode and look into my log files. My "Shared with me" folder has a whitespace in its name, but I'm not sure, if that can be a problem.

It works fine with rclone. Does it has something todo how Google Drive now handles "Shared with me" Folders as links ("Shortcuts"), rather than making a physical copy in my drive?

This issue does not affect "Shared Drives". This works flawlessly after properly setup.