Skip to content
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

Integrate to OpenDAL to allow manage files on s3/azblob/gcs/oss/dopbox/gdrive... #434

Closed
1 task done
Xuanwo opened this issue Dec 6, 2023 · 5 comments
Closed
1 task done
Labels
feature New feature request

Comments

@Xuanwo
Copy link

Xuanwo commented Dec 6, 2023

Is your feature request related to a problem? Please describe

yazi is really great on local fs. I'm thinking about if we can extand those features to more storage services like s3, azblob, oss, dropbox, gdrive and so on.

Will you be willing to contribute this feature?

  • Yes, I'll give it a shot

Describe the solution you'd like

OpenDAL is an Apache project that allows users to easily and efficiently retrieve data from various storage services in a unified way.

image

By integrate with opendal, we can add support for different storage services at once.

Describe alternatives you've considered

No response

Additional context

No response

@Xuanwo Xuanwo added the feature New feature request label Dec 6, 2023
@sachinsenal0x64
Copy link

sachinsenal0x64 commented Dec 7, 2023

Very Useful Feature. :))

@Xuanwo
Copy link
Author

Xuanwo commented Dec 21, 2023

Hi @sxyazi, what do you think about this feature? How can we get involved? I feel like we can add s3 support first.

@sxyazi
Copy link
Owner

sxyazi commented Dec 22, 2023

Hmm I've thought of 3 ways to integrate OpenDAL:

  1. Replace Yazi's current data access layer with OpenDAL completely.
  2. Use "opendal-fuse" for external integration, just like archivemount does.
  3. Abstract a virtual file system for Yazi, with OpenDAL and other external tools/libraries (such as archiver, fd, rg) as separate providers.

For this:

  • The first method essentially shifts the work Yazi needs to OpenDAL, meaning we have to integrate the functionalities Yazi requires into OpenDAL, so it's not the preferred option.
  • The second one, inspired by @og900aero recently, seems to be the simplest and can be implemented in the short term. The downside is its performance isn't ideal.
  • The last one is the most ideal choice. It could fundamentally solve all the long-term issues Yazi faces, like Deleting files in search mode doesn't refresh tab #62. I've been working on achieving this (e.g. refactored all PathBuf to Url), but it's still a long way off.

Please supplement any information I'm unaware of. Maybe we can discuss further details on Yazi's Discord server/Telegram group, such as:

  • How to retrieve the mime-type of a network file through file(1)? It's currently the only essential requirement.
  • How to listen for changes in network files, like actively triggering (deletion, copying, etc.) or passively when files disappear?
  • How to handle multiple file open requests; do we need to add a download queue for this?

@sxyazi sxyazi mentioned this issue Dec 27, 2023
38 tasks
@sxyazi
Copy link
Owner

sxyazi commented Dec 27, 2023

Added to the Feature Requests, closing this issue in favor of that list.

@sxyazi sxyazi closed this as completed Dec 27, 2023
Copy link

I'm going to lock this issue because it has been closed for 30 days. ⏳ This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature New feature request
Projects
None yet
Development

No branches or pull requests

3 participants