GithubHelp home page GithubHelp logo

smallcham / bdfs Goto Github PK

View Code? Open in Web Editor NEW
45.0 3.0 14.0 110 KB

BDFS 基于百度网盘的虚拟文件系统

License: GNU General Public License v3.0

Python 100.00%
fuse filesystem vfs fs baidu baidupan netdisk pyfuse3

bdfs's Introduction

BDFS(基于百度云盘的虚拟文件系统)


BDFS是以Python3实现基于百度云盘2.0版本接口的虚拟文件系统,目标是做到与本地文件系统无差别的操作方式。

由于百度网盘长时间没有Linux版本,刚没多久发布的Linux版本客户端Bug也很多,登录一次之后再也无法登录。我个人日常会有一些文档需要在家和公司来回倒腾很不方便,所以干脆就实现了这个文件系统,相当于本地多了块好几个T的云硬盘。在实现文件系统的各种功能中对逻辑和速度有一些取舍,而且百度的接口是HTTP的,所以大家对速度不要有太多的幻想,当然会员也会快很多。


操作演示视频


操作演示截图


注意事项

  • 需要注意的是,由于百度接口的限制,无法在 /apps (/我的应用) 之外创建文件(创建文件实际上由上传接口抽象过来的,该接口无法上传至根目录),但是你可以操作移动,创建文件夹等操作, apps目录下会有其它的一些应用生成的文件夹,为了整洁的目录结构,我已将权限限制至 /apps/bdfs/ 你在这个目录下拥有bdfs的所有权限。
  • 目录列表的加载我加了缓存,请求过一次的目录一个小时之后才会再次请求百度,一是避免太频繁被百度封了,二是提高响应速度,在文件系统内的操作都会更新缓存,当然你也可以在 enum.py 中修改默认值。
  • 文件系统默认的配置目录是~/.bdfs 默认临时文件目录是 /tmp/.bdfs 读取过一次的文件和文件拷贝会在临时文件目录缓存或中转,重启后自动丢失。
  • 如果你要用窗体文件管理器打开文件,请使用列表视图,因为文件管理器会尝试读取文件的部分字节获取缩略图等等信息,这将会导致多个文件的读取(下载)被触发,相当的慢。

使用方法(基于Ubuntu,其它Linux系统根据需要请自行修改)

  1. 首先你需要编译 libfuse ,编译方法里面都有, bdfs 是基于fuse实现的虚拟文件系统,所以你必须编译fuse库。
  2. 下载bdfs项目 git clone https://github.com/smallcham/bdfs.git
  3. 进入到项目目录安装项目依赖执行 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ 参数 -i 指定为清华的源,因为国内连pypi实在太慢了
  4. 建立软链接 sudo ln -s /项目路径/mnt.py /usr/bin/bdfs && sudo chmod +x /usr/bin/bdfs
  5. 挂载 bdfs mount 挂载路径 例如: bdfs mount ~/baidupan

执行这些安装命令的时候可能会提示找不到libfuse.so库,遇到了不要紧张,使用命令 whereis libfuse 找到编译好的so文件 如:libfuse3.so,将其链接到提示找不到的目录就好了。

  • Q: 如何后台启动?

  • A: nohup bdfs mount 挂载路径 &

  • Q: 如何取消挂载?

  • A: bdfs umount 挂载路径


目前已实现的功能(普通文件操作基本已经实现,应该能满足大部分情况下的正常使用)

读、写、删除、重命名、移动、复制、创建文件夹、创建文件

尚未实现的功能

权限(目前权限默认是755)
软链接(你可以从bdfs外部与bdfs建立软链接,内部软链接暂未实现)

尚未修复的问题

1. 文件修改后回写正常,但是读取内容有问题,重新挂载后为正常修改后的值。
> 这个问题是由于百度网盘上传文件后文件的唯一标识会改变,与当前文件系统的整体的设计稍有冲突,该问题尚待解决。

bdfs's People

Contributors

smallcham avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

bdfs's Issues

创建文件时候出错

这个项目太棒了,不过创建文件时候有问题:
root@n:~/baidupan# touch bb.txt
touch: cannot touch 'bb.txt': Permission denied

请看下是什么问题

关于缓存的自动清除

开发者您好,我想咨询一下,该程序挂载百度盘后,从挂载路径拷贝文件,缓存会存在那个路径下呢?有没有自动清除缓存的机制?比如设定只允许缓存占用空间为2G,超出后会自动清理已下载不用的缓存?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.