既然MediaWiki都已经用上阿里云的OSS了,那剩下的BookStack也可以考虑上了。
从官方文档给出的内容来看,确实有实现的可能性,毕竟阿里云的OSS兼容亚马逊的S3(申请OSS以及账户的方法见《如何在MediaWiki站点中使用阿里云OSS存储上传文件》一文)。
打开配置文件.env
,然后添加如下内容:
STORAGE_TYPE=s3//默认不用改
STORAGE_S3_KEY=AccessKey ID//阿里云的AccessKey ID
STORAGE_S3_SECRET=AccessKey Secret//阿里云的AccessKey Secret
STORAGE_S3_BUCKET=bucket-test0001//bucket名称
STORAGE_S3_ENDPOINT=https://oss-cn-hangzhou.aliyuncs.com//填写bucket所处的endpoint
STORAGE_URL=bucket-test0001.oss-cn-hangzhou.aliyuncs.com//bucket的域名,如果开启了OSS的CDN则可以使用CDN域名
如果是已有站点并上传过部分照片,那么记得将图片文件同步到OSS中,命令如下:
ossutil sync /var/www/html/bookstack/public/uploads/images/ oss://bucket-test0001/uploads/images/
其中,/var/www/html/bookstack
为BookStack所在的根目录。
刷新一下页面,检查一下图片的链接是否已经切换到OSS的URL上了。
注意:如果之前上传过图片并保存于本地,后切换成OSS的,那么除了书籍封面外,章节和页面中的图片可能需要手动修改一下(系统并不会自动修改。
进入数据库,先以https://你的域名/uploads/images
进行搜索,找到对应的表和字段,然后替换成https://你的OSS域名/uploads/images
,比如:
UPDATE `images` SET `url` = REPLACE( `url`, 'https://你的域名/uploads', 'https://你的OSS域名/uploads' );
UPDATE `pages` SET `html` = REPLACE( `html`, 'https://你的域名/uploads', 'https://你的OSS域名/uploads' );
像我这种从http过来的,可能还要替换http://你的域名/uploads/images
。