既然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

参考资料:https://www.bookstackapp.com/docs/admin/upload-config/

最后修改:2025 年 03 月 11 日
如果觉得我的文章对你有用,请随意赞赏