danilop / yas3fs

YAS3FS (Yet Another S3-backed File System) is a Filesystem in Userspace (FUSE) interface to Amazon S3. It was inspired by s3fs but rewritten from scratch to implement a distributed cache synchronized by Amazon SNS notifications. A web console is provided to easily monitor the nodes of a cluster.
http://danilop.github.io/yas3fs
MIT License
640 stars 98 forks source link

Windows port available #161

Open feoff3 opened 6 years ago

feoff3 commented 6 years ago

Hi everyone,

Intro

I wonder if there is a demand into porting YAS3FS to Windows?

Porting the FS will let workstation and servers to access S3 data as regular files. The FS may be used by users to browse their S3 drives, and Windows server software running inside AWS to store their data e.g. logs and backups in the cloud storage reducing the overall headache related to AWS volume management.

I think I may do the task but want to know what YAS3FS community (devs, users) thinks of the idea.

Please provide some feedback in comments below: 1) Do you think the porting of YAS3FS to Windows is worth doing? 2) Do you think the end-product (with installers, docs, etc) should be focused on end-users and workstations, or admins and their servers?

Many thanks for the feedback!

Background

The thing is FUSE-compatible driver WinFSP appeared not so long ago in open source (created by a MS veteran) http://www.secfs.net/winfsp/ and migrating existing FUSE and pyFUSE code became a more or less simple task (compared to writing a kernel filesystem driver from scratch). I already had some experience porting FUSE-based code to Windows and consider implementing an open-source S3 drive product based on WinFSP on YAS3FS.

liath commented 6 years ago

I've thought about doing it to for kicks but I wouldn't want to maintain it. Especially with WSL being generally available, it just seems like adding unnecessary complexity.

If you do look into this, I've saw another FUSE for Windows you might try. https://github.com/dokan-dev/dokany

feoff3 commented 6 years ago

Well, I have some doubts whether WSL will have FUSE built-in. FUSE in Linux is a kernel module that lets user space code to implement FS logics. WSL will not let install FUSE kernel module as WSL emulates Linux for user realm, not kernel.

liath commented 6 years ago

Huh, how about that. I just assumed they ported FUSE without checking, my bad. I use yas3fs from a nix instance that shares the mounted bucket as a CIFS share which is accessible by basically everything. Perhaps that could work for you? Seemed easier to me at least.

feoff3 commented 6 years ago

Hi there again, I created a small port for Windows.

Feel free to test it out (see 'On Windows' entry in README.md) https://github.com/feoff3/yas3fs

Feel free to check it out. I will create a pull request for the feature as soon as get confident it doesn't break anything in upstream.

JoyceBabu commented 5 years ago

@feoff3 How is the windows port working? Are you still planning to send a PR?

dt-iland commented 5 years ago

@feoff3 I found an error in init.py on line 3335 in your fork. Are you still maintaining it by chance?

feoff3 commented 5 years ago

Cool. Well, I'm not actively developing at the moment. It worked in some of my tests but I didn't have a chance to test it more so to release it as a merge request one way or another. Maybe I will have my hands back on it this year.

чт, 30 мая 2019 г., 8:41 Dave notifications@github.com:

@feoff3 https://github.com/feoff3 I found an error in init.py on line 3335 in your fork. Are you still maintaining it by chance?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/danilop/yas3fs/issues/161?email_source=notifications&email_token=ABV5W5XWM7OX5LN4VDW7VMTPX5SHNA5CNFSM4EHNZDS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWRNHWQ#issuecomment-497210330, or mute the thread https://github.com/notifications/unsubscribe-auth/ABV5W5T26FM5A6X7DFC7S5LPX5SHNANCNFSM4EHNZDSQ .