安装fuse3

apt install fuse3

创建挂载目录

mkdir /home/gd

添加挂载守护进程

cat > /etc/systemd/system/gd.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=/home/gd
After=network-online.target

[Service]
Type=notify
ExecStart=/usr/bin/rclone mount gd1: /home/gd --use-mmap --umask 000 --default-permissions --no-check-certificate --allow-other --allow-non-empty --dir-cache-time 10m --vfs-cache-max-age 24h --vfs-cache-poll-interval 1m --cache-dir=/home/cache --vfs-cache-mode full --buffer-size 256M --vfs-read-ahead 512M --vfs-read-chunk-size 32M --vfs-read-chunk-size-limit 128M --vfs-cache-max-size 50G --vfs-cache-min-free-space 10G --low-level-retries 200 --config /root/.config/rclone/rclone.conf
ExecStop=/bin/fusermount -qzu /home/gd
Restart=on-abort
User=root


[Install]
WantedBy=default.target
EOF

启动服务

systemctl enable --now gd && systemctl status gd

元数据和图片放在网盘上 加载速度会比放在本地慢一些 所以我们可以使用OverlayFS 实现图片和元数据文件储存到本地

OverlayFS 是 Linux 的一个文件系统,用途很广泛,比如 openwrt、docker 的文件系统就基于这个。简单讲一下他的作用。

OverlayFS 可以多个目录进行合并成一个新的目录,比如a、b两个目录里分别有 1.mp4 和 1.nfo 文件,那么他们合并成的新目录就同时包含了1.mp4和1.nfo两个文件。另外 OverlayFS 也有层级的概念,如果a、b目录有同名的文件,那么更高层级的目录的文件会优先被访问。

请输入图片描述

引用自rclone挂载Google群友盘 + OverlayFS + tmm + kodi打造家庭媒体中心

创建必要目录

根据自己实际情况更改

mkdir /home/gd-upper /home/gd-work /home/gd2
  • upper:作为上层目录,对谷歌云的读写都会保存到这里,而不会真正写入谷歌云的挂载点
  • work: 存储临时文件
  • gd2: 合并出的新目录
    *

挂载 OverlayFS

mount -t overlay overlay -o lowerdir=/home/gd,upperdir=/home/gd-upper,workdir=/home/gd-work /home/gd2
  • lowerdir=/home/gd:代表底层目录,写操作不会实际写到这里,读操作优先读取上层目录,读不到的才会读这里(比如视频文件)
  • upperdir=/home/gd-upper:代表上层目录,读写优先对这里操作,会保存nfo、poster等文件
  • workdir=/home/gd-work:临时目录,系统需要的,我们不用管他的作用
  • /home/gd2:合并出的新目录,我们后续只对他进行访问
    *

复制元数据/图片到本地

cat > emby.txt <<EOF
+ *.jpg
+ *.png
+ *.nfo
- *
EOF

假设EMBY文件放在Google Drive根目录的EMBY目录上

rclone copy -P gd:EMBY /home/gd-upper/EMBY --filter-from emby.txt --transfers=100

NGINX反向代理

        #PROXY-START/

        client_max_body_size 5000M;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for';
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
            proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
            proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
            proxy_cache off;
            proxy_redirect off;
            proxy_buffering off;
        location / {
                proxy_pass http://127.0.0.1:8096;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_ssl_verify off;
                proxy_http_version 1.1;
                proxy_set_header Host $http_host;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_read_timeout 86400;
            }

        location ~* \.(gif|png|jpg|css|js|woff|woff2)$
        {
            proxy_pass http://127.0.0.1:8096;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header REMOTE-HOST $remote_addr;
            expires 12h;#图片缓存浏览器过期时间
        }

        #PROXY-END/
Last modification:June 10, 2024
如果觉得我的文章对你有用,麻烦点个赞吧 !