记录一下群晖使用时遇到的问题,如果后面再次遇到就可以直接参考。

Synology Drive Client

无法同步文件

在电脑上进行文件夹同步时,有些文件会遇到无法同步的情况。

查看日志:

2020-11-23T09:52:08 (4252) [ERROR] download-remote-handler.cpp(311): Worker (7154): Unable to handle locked/no permission file 'blabla'.
2020-11-23T09:52:08 (4252) [INFO] error-handler.cpp(77): Worker (7154): Handle error: file locked or no permission.

经过查询发现这是因为文件添加了只读属性,必须要删除这个属性才能进行同步。

# 利用这个便可以删除当前目录下所有文件的只读属性
# /S 指处理所有文件,包括子文件
# -R 指删除只读属性
# * 指所有文件
attrib /S -R *

部分文件夹无法同步

有一些文件夹会被忽略掉,无法同步。

2022-05-23T13:13:58 (5364) [INFO] detector-win2.cpp(448): path blabla is filtered since it is an invalid node (attribute: 1041)

尝试重装软件,重新配置同步文件夹,失败。之后发现虽然资源管理器没有显示,但其实已经没有报错了。还是没有弄明白具体问题。

同步文件夹名称变成英文

将音乐设置为同步文件夹时,客户端会修改 desktop.ini,导致文件夹名称变为英文。需要修改回去,可参考 desktop.ini 配置

如下为音乐的 desktop.ini 内容:

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21790
InfoTip=@%SystemRoot%\system32\shell32.dll,-12689
IconResource=%SystemRoot%\system32\imageres.dll,-108
IconFile=%SystemRoot%\system32\shell32.dll
IconIndex=-237

同步时如何忽略指定文件夹

同步文件时,想要忽略某个文件夹,但是客户端并没有提供这个选项。

可以通过修改配置文件 C:\Users\{UserName}\AppData\Local\SynologyDrive\data\session\{Number}\conf,内容如下:

[Directory]

black_name = ".venv", "__pycache__", "build", "dist", ".dart_tool", ".pytest_cache"

这样就能忽略对应文件夹。不过每次使用客户端修改对应 Session 的配置之后,这个设置会被覆盖,还需要重新设置。

或者可以修改全局配置文件 C:\Users\{UserName}\AppData\Local\SynologyDrive\SynologyDrive.app\conf\filter-v4150,这样所有同步文件夹都会忽略指定文件夹。

不过同样的,如果当软件更新或重装,都有可能导致配置文件被覆盖,需要特别注意。

如何隐藏资源管理器侧边栏的 Synology Drive 项

安装 Synology Drive 之后会在侧边栏添加 Synology Drive 文件夹。如果不想看到则需要修改注册表。

注册表 HKEY_CURRENT_USER\Software\Classes\CLSID\ 下,找到 Synology Drive 的项。

将 System.IsPinnedToNameSpaceTree 设置为 0,并重启 explorer.exe

Synology Photos

由于转换失败,无法显示此文件

浏览图片的时候如果遇到图片提示 由于转换失败,无法显示此文件

这个时候可以去图片存放文件夹下,删除文件夹内的 @eaDir 文件夹。等待 NAS 重新转换图片之后,这个错误应该就会消失。

Video Station

无法播放 eac3 音轨

最近的系统无法播放 eac3 音轨的视频,原因在此

首先去套件中心-设置-套件来源中添加 http://packages.synocommunity.com

安装 ffmpeg 后,将以下脚本保存为文件 ffmpeg_dts_eac3_patch.sh

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear
# VAR     ******************************************************************
vAction=$1
# Function List    *******************************************************************************
function install() {
    # 备份 VideoStation's ffmpeg
    mv -n /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg.orig
    # 下载 ffmpeg 脚本
    # https://gist.github.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e
    wget -O - https://gist.githubusercontent.com/BenjaminPoncet/bbef9edc1d0800528813e75c1669e57e/raw/ffmpeg-wrapper > /var/packages/VideoStation/target/bin/ffmpeg
    # 设置脚本相应权限
    chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg
    chmod 750 /var/packages/VideoStation/target/bin/ffmpeg
    chmod u+s /var/packages/VideoStation/target/bin/ffmpeg
    # 备份 VideoStation's libsynovte.so
    cp -n /var/packages/VideoStation/target/lib/libsynovte.so /var/packages/VideoStation/target/lib/libsynovte.so.orig
    chown VideoStation:VideoStation /var/packages/VideoStation/target/lib/libsynovte.so.orig
    # 为 libsynovte.so 添加 DTS, EAC3 和 TrueHD 支持
    sed -i -e 's/eac3/3cae/' -e 's/dts/std/' -e 's/truehd/dheurt/' /var/packages/VideoStation/target/lib/libsynovte.so
    # 备份 CodecPack 的 ffmpeg41
    cp /var/packages/CodecPack/target/bin/ffmpeg41 /var/packages/CodecPack/target/bin/ffmpeg41.bak
    # 链接 ffmpeg 解码模块
    cp /var/packages/VideoStation/target/bin/ffmpeg /var/packages/CodecPack/target/bin/ffmpeg41
    echo '请重新启动 Video Station,并测试 ffmpeg 是否正常工作'
}
function uninstall() {
    # 恢复之前备份的 VideoStation's ffmpeg, libsynovte.so 文件
    mv -f /var/packages/VideoStation/target/bin/ffmpeg.orig /var/packages/VideoStation/target/bin/ffmpeg
    mv -f /var/packages/VideoStation/target/lib/libsynovte.so.orig /var/packages/VideoStation/target/lib/libsynovte.so
    mv -f /var/packages/CodecPack/target/bin/ffmpeg41.bak /var/packages/CodecPack/target/bin/ffmpeg41
}

# SHELL     ******************************************************************
if [ "$vAction" == 'install' ]; then
    if [ ! -f "/var/packages/VideoStation/target/bin/ffmpeg.orig" ]; then
        install
    else
        echo '你已经添加过 DTS 支持'
        echo '=========================================================================='
        exit 1
    fi
elif [ "$vAction" == 'uninstall' ]; then
    if [ ! -f "/var/packages/VideoStation/target/bin/ffmpeg.orig" ]; then
        echo '你还没安装过 ffmpeg DTS 支持补丁'
        echo '=========================================================================='
        exit 1
    else
        uninstall
    fi
else
    echo '错误的命令'
    echo '=========================================================================='
    exit 1
fi

执行 ./ffmpeg_dts_eac3_patch.sh install 即可添加 eac3 支持。

标签: 群晖, NAS