unraid NAS开源相册piwigo的一些补充(中文名,自动同步)
关于piwigo安装、设置请参考铁茄子的这两篇文章,我也是看了他的文章后安装的,在此表示感谢。
本文是自己使用中遇到的问题和解决方案,因在原帖回复可能说不清楚,故单独发一篇。
以下说明根据unraid docker安装piwigo为例,用群晖的可以参考。
1、让piwigo支持中文目录名和文件名
安装过LocalFiles Editor的话(强烈建议安装),登录admin账户-插件-LocalFiles Editor-本地配置,修改$conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_.]+$/';为$conf['sync_chars_regex'] = '/^[a-zA-Z0-9-_.x00-xff]+$/';
注:1.最后的;号不要漏了
2.x00-xff在正则表达式里表示双字节字符,理论上支持其他双字节语言文件名。之前用过表示中文的u4e00-u9fa5,不知为何没有成功。
2、使用nas上原有目录做为相册
首先,编辑piwigo的docker设置。把nas上原有目录指定为piwigo的/config/www/gallery/galleries目录。比如我原有图片的目录是/mnt/user/Documents/admin/files/Photos,这样设置后Photos目录下的二级目录会做为相册目录。
仅仅设置目录并不能直接在相册里显示,需要进行同步。同样admin账户登录piwigo后,工具-同步,选择目录+文件,取消勾选模拟,点击提交。
成功后会有如下类似提示,如果不成功也会有出错内容提示。
3、自动同步
来源:第二条中设为同步的目录,如果有图片更新,可以利用脚本自动同步。官方开发者plg给的perl脚本,unraid上perl倒是能装上,还需要libwww-perl这个不会装
。回帖里Danny Ouellet提供了php脚本,测下来可行。把以下内容存为.php文件,前面几行的$baseurl,$username,$password修改为自己的url,用户名和密码,上传到nas,在终端执行php /目录/名字.php ,如果没有问题的话,unraid可以通过user scripts插件定时执行,或者用crontab。
<?php
$baseurl = 'http://yourpiwigo.com';
$username = 'adminuser';
$password = 'adminpassword';
$url = $baseurl.'/identification.php';
$fields = array(
'username' => $username,
'password' => $password,
'redirect' => '',
'login' => 'on'
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
$cookieJar = 'synchroCookie';
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);
curl_exec($ch);
curl_close ($ch);
unset($ch);
$url = $baseurl.'/admin.php?page=site_update&site=1';
$fields = array(
'sync' => urlencode('files'),
'privacy_level' => urlencode('0'),
'subcats-included' => urlencode('1'),
'submit' => urlencode('on')
);
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookieJar);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookieJar);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_exec($ch);
curl_close ($ch);
unset($ch);
?>







灰色会
校验提示文案
今夜雨会不会来
1、如果是全中文的目录名和文件名:系统会生成一个galleries名字的相册,相册里面的照片备注不会显示照片名,显示的是-.jpg,如果有多个全中文的目录名,就会生成相同数量的galleries相册;
2、如果是中文开头的目录名和文件名:系统会自动忽略掉开头的中文,以开头中文后面的字符命名相册和照片备注。
校验提示文案
值友6627367444
校验提示文案
wingboo
校验提示文案
铁茄子
校验提示文案
值友9654052192
校验提示文案
赢时夙夜
校验提示文案
太子长琴
校验提示文案
黑之小白
校验提示文案
东街小东东
校验提示文案
东街小东东
$conf['sync_chars_regex'] = '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9-_.\(\>\!@#\s+]+$/u';
校验提示文案
值友7465690284
校验提示文案
Angus疯子
校验提示文案
BiN12Ni
校验提示文案
NA404
校验提示文案
NA404
校验提示文案
太子长琴
校验提示文案
黑之小白
校验提示文案
值友7465690284
校验提示文案
赢时夙夜
校验提示文案
BiN12Ni
校验提示文案
东街小东东
$conf['sync_chars_regex'] = '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9-_.\(\>\!@#\s+]+$/u';
校验提示文案
东街小东东
校验提示文案
值友9654052192
校验提示文案
铁茄子
校验提示文案
Angus疯子
校验提示文案
wingboo
校验提示文案
值友6627367444
校验提示文案
今夜雨会不会来
1、如果是全中文的目录名和文件名:系统会生成一个galleries名字的相册,相册里面的照片备注不会显示照片名,显示的是-.jpg,如果有多个全中文的目录名,就会生成相同数量的galleries相册;
2、如果是中文开头的目录名和文件名:系统会自动忽略掉开头的中文,以开头中文后面的字符命名相册和照片备注。
校验提示文案
灰色会
校验提示文案