Skip to main content

FUSE for alist

Project description

能用 但是由于fuse机制 会大量请求服务器 体验不好 不建议使用

docker: https://hub.docker.com/r/ykxvk8yl5l/alist-fuse

演示视频: https://youtu.be/fl1Lp1_1AR4

https://youtu.be/yEOhw2mQwyI

基本完成

命令行使用【可选参数--proxy-url xxxxxxxx】:

./alist-fuse --alist-user XXXXXXXXX --alist-password XXXXXXX  -w token保存目录  挂载点

有网友反馈非邮箱登陆会登陆失败,请使用邮箱、密码方式登陆.Gmail用户请在alist后台设置密码.

Docker安装演示:https://youtu.be/-JXdcD0Yfbk

安装[可能需要给执行权限]

  • relase下载所需二进制,用命令行启动
  • pip install alist-fuse

alist-fuse

🚀 Help me to become a full-time open-source developer by sponsoring me on GitHub

alist网盘 FUSE 磁盘挂载,主要用于配合 Emby 或者 Jellyfin 观看alist网盘内容,功能特性:

1. 目前只读,不支持写入
2. 支持 Linux 和 macOS,暂不支持 Windows(Mac上上传文件会闪退暂不解决).

alist-webdav 项目已经实现了通过 WebDAV 访问alist网盘内容,但由于 Emby 和 Jellyfin 都不支持直接访问 WebDAV 资源, 需要配合 rclone 之类的软件将 WebDAV 挂载为本地磁盘,而本项目则直接通过 FUSE 实现将alist网盘挂载为本地磁盘,省去使用 rclone 再做一层中转。

安装

  • macOS 需要先安装 macfusebrew install --cask macfuse
  • Linux 需要先安装 fuse
    • Debian 系如 Ubuntu: apt-get install -y fuse3
    • RedHat 系如 CentOS: yum install -y fuse3

可以从 GitHub Releases 页面下载预先构建的二进制包, 也可以使用 pip 从 PyPI 下载:

pip install alist-fuse

如果系统支持 Snapcraft 比如 Ubuntu、Debian 等,也可以使用 snap 安装【未实现】:

sudo snap install alist-fuse

OpenWrt 路由器

GitHub Releases 中有预编译的 ipk 文件, 目前提供了 aarch64/arm/x86_64/i686 等架构的版本,可以下载后使用 opkg 安装,以 nanopi r4s 为例:

wget https://github.com/ykxVK8yL5L/alist-fuse/releases/download/v0.1.1/alist-fuse_0.1.1-1_aarch64_generic.ipk
wget https://github.com/ykxVK8yL5L/alist-fuse/releases/download/v0.1.1/luci-app-alist-fuse_0.1.1_all.ipk
wget https://github.com/ykxVK8yL5L/alist-fuse/releases/download/v0.1.1/luci-i18n-alist-fuse-zh-cn_0.1.1-1_all.ipk
opkg install alist-fuse_0.1.1-1_aarch64_generic.ipk
opkg install luci-app-alist-fuse_0.1.1_all.ipk
opkg install luci-i18n-alist-fuse-zh-cn_0.1.1-1_all.ipk

其它 CPU 架构的路由器可在 GitHub Releases 页面中查找对应的架构的主程序 ipk 文件下载安装。

Tips: 不清楚 CPU 架构类型可通过运行 opkg print-architecture 命令查询。

命令行用法

USAGE:
    alist-fuse [OPTIONS] --refresh-token <REFRESH_TOKEN> <PATH>

ARGS:
    <PATH>    Mount point

OPTIONS:
        --allow-other                            Allow other users to access the drive
        --domain-id <DOMAIN_ID>                  Aliyun PDS domain id
    -h, --help                                   Print help information
    --alist-user <Alist_USER>                  [env: Alist_USER=]
    --alist-password <Alist_PASSWORD>          [env: Alist_PASSWORD=]
    --proxy-url <API_URL>                      [env: API_URL=]
    
    -S, --read-buffer-size <READ_BUFFER_SIZE>    Read/download buffer size in bytes, defaults to 10MB [default: 10485760]
    -V, --version                                Print version information
    -w, --workdir <WORKDIR>                      Working directory, refresh_token will be stored in there if specified

比如将磁盘挂载到 /mnt/alistDrive 目录:

mkdir -p /mnt/alistDrive /var/run/alist-fuse
alist-fuse --alist-user XXXXXXXXX --alist-password XXXXXXX -w /var/run/alist-fuse /mnt/alistDrive

Emby/Jellyfin

如果是直接运行在系统上的 Emby/Jellyfin,则可以直接在其控制台添加媒体库的时候选择alist网盘对应的挂载路径中的文件夹即可; 如果是 Docker 运行的 Emby/Jellyfin,则需要将alist网盘挂载路径也挂载到 Docker 容器中,假设alist网盘挂载路径为 /mnt/alistDrive, 以 Jellyfin 为例(假设 Jellyfin 工作路径为 /root/jellyfin)将云盘挂载到容器 /media 路径:

docker run -d --name jellyfin \
  -v /root/jellyfin/config:/config \
  -v /root/jellyfin/cache:/cache \
  -v /mnt/alistDrive:/media \
  -p 8096:8096 \
  --device=/dev/dri/renderD128 \
  --device /dev/dri/card0:/dev/dri/card0 \
  --restart unless-stopped \
  jellyfin/jellyfin

License

This work is released under the MIT license. A copy of the license is provided in the LICENSE file.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alist_fuse-0.1.1.tar.gz (49.4 kB view hashes)

Uploaded Source

Built Distributions

alist_fuse-0.1.1-py3-none-musllinux_1_1_x86_64.whl (2.5 MB view hashes)

Uploaded Python 3 musllinux: musl 1.1+ x86-64

alist_fuse-0.1.1-py3-none-musllinux_1_1_i686.whl (2.2 MB view hashes)

Uploaded Python 3 musllinux: musl 1.1+ i686

alist_fuse-0.1.1-py3-none-musllinux_1_1_armv7l.whl (2.1 MB view hashes)

Uploaded Python 3 musllinux: musl 1.1+ ARMv7l

alist_fuse-0.1.1-py3-none-musllinux_1_1_aarch64.whl (2.3 MB view hashes)

Uploaded Python 3 musllinux: musl 1.1+ ARM64

alist_fuse-0.1.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (2.1 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

alist_fuse-0.1.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.3 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

alist_fuse-0.1.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (2.5 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

alist_fuse-0.1.1-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (2.2 MB view hashes)

Uploaded Python 3 manylinux: glibc 2.5+ i686

alist_fuse-0.1.1-py3-none-macosx_10_7_x86_64.whl (2.2 MB view hashes)

Uploaded Python 3 macOS 10.7+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page