我有一个通过 Samba 共享的音乐库。我使用具有 rwx 权限的帐户连接到 Samba 共享。我可以验证我是否可以在与音乐文件相同的目录中创建文件以及重命名音乐文件。
[23:18]myuser@mydesktop:~
$ cd /run/user/1001/gvfs/smb-share\:server\=myserver\,share\=music%20on%20myserver/Artist\ Name/\[1997\]\ Album\ Title/
[23:20]myuser@PyramidMines:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title
$ touch newfile
[23:20]myuser@PyramidMines:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title
$ ls -al
total 149035
drwx------ 1 myuser myuser 0 Feb 15 22:37 .
drwx------ 1 myuser myuser 0 Nov 27 13:36 ..
-rwx------ 1 myuser myuser 39574560 Nov 27 13:06 01 Song Title.mp3
-rwx------ 1 myuser myuser 43185728 Nov 27 13:08 02 Song Title.mp3
-rwx------ 1 myuser myuser 69753303 Nov 27 13:13 03 Song Title.mp3
-rwx------ 1 myuser myuser 46015 Nov 27 13:06 cover (1).jpg
-rwx------ 1 myuser myuser 51128 Nov 27 13:06 cover.jpg
[23:20]myuser@PyramidMines:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title
$ mv 01\ Song\ Title.mp3 01SongTitle.mp3
[23:21]myuser@PyramidMines:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title
$ mv 01SongTitle.mp3 01\ Song\ Title.mp3
[23:21]myuser@PyramidMines:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title
$ rm newfile
我现在已经尝试使用多个应用程序,EasyTag、Clementine 和 MusicBrainz Picard,来编辑一些标签错误的歌曲的元数据,但它们都返回错误。
例如,当我尝试在 Clementine 中更新一首歌曲的艺术家时。
An error occurred writing metadata to '/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title/02 Song Name.mp3'
EasyTag 和 Picard 也出现了类似的错误。在将文件移至 Samba 共享之前,我已经使用 Picard 更新了相关文件。之后我意识到 MusicBrainz 对我的一些专辑的 Artist 拼写有误,而我现在正尝试更新这些专辑。
此时,我似乎必须将相册复制到我的桌面,编辑它们并将它们放回共享位置。
我已检查确保 Picard/Clementine 确实正在运行,因此myuser
他们应该对这些共享文件拥有我的权限?
我不认为这对我来说是个问题smb.conf
[Music on myserver]
path = /path/to/Music
browseable = yes
guest ok = no
read only = yes
valid users = mediamanager, streamer
write list = mediamanager
使用该帐户在我的桌面上安装共享mediamanager
。
更新:
有人知道吗?我唯一能想到的是,Clementine、EasyTag 等使用的 id3 标记程序没有正确处理文件字符串的路径
/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1997] Album Title/02 Song Name.mp3
我知道当我尝试使用 pyRenamer 打开其中一个 samba 共享文件夹时,它会告诉我该目录无效。
更新:
或许有一些进展。
我安装了 id3 并尝试使用命令行修改标签,但到目前为止我还无法从其他程序中得到任何有用的诊断。
[20:25]myuser@mydesktop:~
$ cd /run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1993] Album Name/
[20:27]myuser@mydesktop:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1993] Album Name
$ id3 -l 01\ Song\ Name.mp3
01 Song Name.mp3:
Title : Song Name Artist: Artist Name
Album : Album Name Year: , Genre: Rock (17)
Comment: Track: 1
[20:27]myuser@mydesktop:/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/Artist Name/[1993] Album Name
$ id3 -y "1993" 01\ Song\ Name.mp3
id3: fopen: 01 Song Name.mp3: Operation not supported
所以问题就变成了,为什么共享文件不支持 fopen?
答案1
我还没有找到确切的答案,但确实想出了一个解决方法。
以前,我没有在启动时安装 Samba 共享,而是通过 Nautilus 的“连接到服务器”浏览到这些共享。连接到它们后,我将这些位置添加到书签中,并通过打开 Nautilus 并单击书签来安装它们。这将自动将共享安装到/run/user/1001/.....
我喜欢这个解决方案,因为这意味着我不会自动安装我不打算访问的共享。
然而,将共享重新安装到更正常的路径后,我能够编辑元标记。
sudo mount -t cifs -o user=mediamanager //myserver/music\ on\ myserver /home/myuser/Music/Music\ on\ Myserver
我猜想 id3 标签编辑工具无法处理路径名,/run/user/1001/gvfs/smb-share:server=myserver,share=music%20on%20myserver/
但我不确定。如上所示,即使我手动导航到包含 mp3 的 id3 失败的文件夹,我也不确定路径是否应该在那里产生任何影响。
目前看来,如果我想编辑任何元标记,我将不得不在需要时手动安装共享或通过 fstab 自动安装它们。