570
文章
·
29345
阅读
570
文章
·
29345
阅读

有32人阅读过 创建一个web服务,获取群晖系统指定目录的文件直链
发布于2023/12/17 更新于2023/12/22
[ 教程仅保证更新时有效,请自行测试。]

  1. 安装web station, php 套件

  2. 打开web station, 新增一个网页服务

    image.png

    image.png

  3. 新增一个网络门户,绑定刚才创建的网页服务

    image.png

    image.png

  4. 去路由映射1217,使外网可以访问到此端口。


  5. 控制面板-计划任务 创建一个定时任务,

    image.png

  6. 内容如下:

    image.png

    image.png

    image.png

    脚本详细内容如下:

    注:根据自己文件的路径和需要提取文件的后缀名,及web服务的地址。修改后再添加到任务。

  7. #!/bin/bash
    
    # 获取脚本所在目录路径
    file_dir="/volume1/video"
    
    # 目标文件后缀名列表
    target_extensions=("mp4" "mkv")
    
    # web服务地址
    url_host="http://(ip或域名):1217/"
    
    # 输出文件名称
    file_name="filelist.txt"
    
    output_file="$file_dir/$file_name"
    > "$output_file"
    
    urlencode() {
        # Usage: urlencode "string"
        local string="$1"
        echo -n "$string" | xxd -plain | tr -d '\n' | sed 's/\(..\)/%\1/g'
    }
    
    find "$file_dir" -type f \( -iname "*.mp4" -o -iname "*.mkv" \) -print0 |
    while IFS= read -r -d '' file_name; do
        base_name=$(basename "$file_name")
        relative_path="${file_name#"$file_dir/"}"
        extension="${base_name##*.}"
        if [[ " ${target_extensions[@]} " =~ " $extension " ]]; then
            encoded_relative_path=$(urlencode "$relative_path")
            url="$url_host$encoded_relative_path"
            # 输出文件,格式未“文件名,url”
            echo "$base_name,$url"
        fi
    	# 按文件名排序输出
    done | sort -t',' -k1 | paste -sd'\n' - > "$output_file"


  8. 网页访问 ip或域名:1217/filelist.txt ,即可看到生成的文件内容。

  9. 将此文件订阅到自己的iptv即可使用iptv客户端进行观看。

  10. 如需获取其他目录的文件名,请同步修改web station中网页服务的位置。

文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站