FAQ

1. 未配置redis

状况:

开发方式启动没异常,或者出现 ValueError: Invalid redis url

访问页面时出现(正式环境启动时会出现此错误):

AttributeError: 'NoneType' object has no attribute 'hget'

解决:配置redis即可,设置环境变量sapic_redis_url或写入.cfg配置文件

2. 配置了redis但未启动redis服务

状况: ConnectionError: Error 111 connecting to localhost:6379. Connection refused.

解决:启动即可

3. redis服务有密码,但配置中没有

状况: AuthenticationError: Authentication required.

解决:

redis配置格式是 redis://[:password]@host:port/db

如果没有密码,去掉 [:password] ,有密码就需要加上,注意:有冒号,没有中括号。

4. redis服务没有密码,但配置中有

状况: AuthenticationError: Client sent AUTH, but no password is set

解决:去掉配置中密码部分,或者redis加上密码重启redis服务

5. 正式环境多worker下登录状态紊乱

状况:在正式环境启动了多个工作进程(gunicorn workers),由于web应用的密钥 随机生成的原因,多进程之间没有共享,所以会出现登录后,刷新页面又不是登录 状态了。

解决:v1.8修复此问题,固定了密钥,之前的版本可以在环境变量或配置文件.cfg中 设置 picbed_secretkey 为一个固定复杂的值。

ps:docker-compose用户可以在docker-compose.yml中添加以下变量再构建启动(大概是第10行sapic_redis_url下面):

- picbed_secretkey = abcdefg

6. 能上传视频吗

v1.13.0支持,进入beta,可由后台开启。

7. Nginx反向代理Docker中的sapic时,https显示异常变成http

我记得之前有人邮件我这个问题,up2local遇到的,应该是v1.13.0试了个方法,不过后来我在k8s中 发现同样问题,所以使用了flask官方方案。

启动前先配置ProxyFix,请看安装篇,可以设置环境变量 sapic_proxyfix=true 开启信任代理标头。

在 1.13.2 版本加入.

8. 如何备份数据

请注意,除图片或视频源文件外的其他持久化数据均存储在 redis 中,然而它并不是传统的关系型 数据库,而是内存型,所以是有风险的,一定要开启AOF。

所以备份数据就是备份redis的库,请使用redis相关工具定时导出库中数据即可备份。

9. 添加第三方钩子时提示模块未发现

管理员后台安装第三方包后,需要添加第三方钩子方能加载,但发现提交时提示未发现模块。

目前发现此问题,尚不确认原因,如需加载,请重载或重启 Sapic 应用。