如何将用户上传的文件存放在文件系统中,而不是数据库中。

Sakai在默认安装时,会将用户上传的文件存放在数据库中。这种方案对于演示和了解Sakai来说是个不错的选择。但是对于生产系统来说,这并不是一个很好的策略。将上传文件存放在数据库中会对系统性能以及备份都会产生一系列的不便。如果需要使用文件系统来管理用户上传文件的话,可以进行如下配置。

在sakai.properties中添加下列设置

bodyPath@org.sakaiproject.content.api.ContentHostingService = %PATH_TO_STORAGE%
bodyVolumes@org.sakaiproject.content.api.ContentHostingService = %VOLUMES%

其中%PATH_TO_STORAGE%指向需要存放的目录位置。

%VOLUMES%为分卷标志,用于今后的存储扩展。当有新的用户上传文件时,文件会随机分配到此参数指定的子目录中。
Windows系统不需要考虑这个,可以简单的设置为 vol1

例如,当%PATH_TO_STORAGE%设定为 /opt/storage,而%VOLUMES%设定为 vol1 时,新文件的存放位置为
/opt/storage/vol1/yyyy/ddd/hh/uuid
其中yyyy为上传的年份,ddd为上传的日期在一年中的第几天,hh为上传小时是一天中的第几小时,uuid为随机生成的uuid字符串。
请注意:以上和时间相关的参数采用的是国际标准时(即格林尼治时间),而不是当前时区时间。

如何配置邮件服务器

在Sakai系统中,所有的邮件是通过同一个邮件帐号进行发送的。这个邮件可以是学校内部的,也可以是公用邮箱。
但是,目前绝大多数的邮件服务提供商都会限制邮件发送数量,所以,使用学校内部邮箱并取消相关邮件发送数量配置是很有必要的。
下面以使用163邮箱为例:

# 用于发送邮件帐号的SMTP服务器
smtp@org.sakaiproject.email.api.EmailService=smtp.163.com
# SMTP服务端口,默认25
smtpPort@org.sakaiproject.email.api.EmailService=25
# 发送邮件帐号,根据邮件服务器不同,可能带有@xxx.com,可能不带。具体需要查看邮件服务文档
smtpUser@org.sakaiproject.email.api.EmailService=邮箱@163.com
# 发送邮件密码
smtpPassword@org.sakaiproject.email.api.EmailService=密码
# 是否使用SSL加密,默认false
smtpUseSSL@org.sakaiproject.email.api.EmailService=false
# 邮件发送帐号全称
smtpFrom@org.sakaiproject.email.api.EmailService=邮箱@163.com
# 每封邮件的最大收件人数量
maxRecipients@org.sakaiproject.email.api.EmailService=100
# 调制状态,如果设置为true,将不会实际发送邮件,而是在日志中显示相关信息
smtpDebug@org.sakaiproject.email.api.EmailService=false
# 当系统发生问题时,报告错误的邮箱。所有的错误报告将会发送到此邮箱
portal.error.email=邮箱@163.com
# 邮件中显示的发送名。有些邮件服务器会要求这个必须与实际发送名一致
setup.request=邮箱@163.com
# 当有新用户注册时,是否发送给新用户邮件。
notifyNewUserEmail=true

如何修改文件上传大小限制

Sakai系统中,资源工具的单次最大上传大小为20MB。可以通过在sakai.properties中修改下面的属性提高限制。

# upload limit per request, in MBs
content.upload.max=20