重新建立了一个outline实例,发现上传附件时报错:validation isin on acl failded,尝试插入图片和导入文档报错都一样。从报错信息上看是acl规则禁止了附件上传。因为我使用本地文件作为存储后端,local file配置项里没有aws s3 acl那样的策略选项,在谷歌上也只能搜到aws s3相关的问题,排查日志后没有发现error信息,只能尝试修改.env文件中AWS_S3_ACL的值。
根据outline官方.env文件的注释,想要实现s3的公有读私有写,AWS_S3_ACL需要从默认的private改成public-read,尝试AWS_S3_ACL=public-read,重启outline容器,这下上传附件终于正常了。
最后吐槽一下outline配置项名称设计很不合理,存储后端分为s3和local file两种,acl规则名称起一个AWS_S3_ACL很容易让人以为这是只对s3起效的配置项,但实际上AWS_S3_ACL对local file一样生效!你说惊不惊喜,意不意外,官方文档里也没有提到这一点,只能靠个人去猜,万一掉到坑里怎么爬的出来啊~