viciousviper / DokanCloudFS

A virtual filesystem for various publicly accessible Cloud storage services on the Microsoft Windows platform.
MIT License
312 stars 54 forks source link

Can this be used with directory mounts? #30

Closed mikesmiffy128 closed 7 years ago

mikesmiffy128 commented 7 years ago

Hello, this tool looks like quite a nice way to access online storage (thanks!). However, I don't really like the idea of polluting the system with fake drives, and would much rather have something like ~/clouds with subdirectories for each mount. This would also avoid the problem of there only being 26 drive letters.

viciousviper commented 7 years ago

Hi @mikesmiffy128,

presently I only support virtual drives. AFAIK the base technology behind my tools (which is of course Dokany) does not support arbitrary directories as mount points, but I'd have to check again to be sure. I might be able to mount several virtual file systems as top-level directories of a specific virtual drive (i.e. V:\OneDrive\* and V:\Mega\*) - would this be of any value to you?

As an aside - do you really see a problem in having "only" 26 drive letters (or maybe more like 20) available for cloud volumes?

viciousviper commented 7 years ago

.., turns out I am mistaken and Dokany is very much able to use arbitrary dictionaries as mount points.

I'll look into this.

mikesmiffy128 commented 7 years ago

Ah, great. I was sure it was possible and was just looking for the relevant information but it looks like you beat me to it. :) Regarding "only 26," it's not really a problem for me but it is foreseeable that someone somewhere with a lot of hard disks, network mounts etc would want to avoid running out of letters.

Thanks for looking into it! 👍

viciousviper commented 7 years ago

Unfortunately, all is not as easy as it seems. :disappointed:

While the dokany docs clearly state that mount points can be (empty) NTFS directories, I've had no success with actually mounting to anything but a full drive letter. This is both from within DokanCloudFS and from the C-based mirror.exe sample provided with dokany. The latter just gives me a "Can't assign a drive letter" from calls like mirror.exe /r C:\Temp /l D:\Temp\Dokan\Mount whereas mirror.exe /r C:\Temp /l T: works as expected.

I'll try contacting the dokany devs to find out what the actual matter is.

viciousviper commented 7 years ago

Long story short: Directory mount points basically work with only minimal changes to DokanCloudFS. You will, however, have to pay very close attention to your intended mount point being an existing and empty directory. If the dokany driver fails to mount to directory only once, it will refuse to mount to any directory mount point - even legitimate ones - until the next reboot. I'll commit the required changes shortly.

mikesmiffy128 commented 7 years ago

:+1:

Rondom commented 7 years ago

@viciousviper That sounds like a bug. Maybe try to reproduce it with the mirror and report it.

viciousviper commented 7 years ago

Hi @Rondom, I was able to reproduce this exact behaviour with mirror.exe. Will fill the required forms for a dokany bug report sometime later.