用户默认空间上限
[quota]
# 单位为 GB
default = 2
这个设置对所有用户生效. 如果你想对某一特定用户进行容量分配, 请以管理员身份登陆 Seahub 网站, 在System Admin页面中进行设置.
从企业版 10.0.9 开始,您可以设置资料库允许的最大文件数量,当资料库中的文件数量超出这个限制时,无法上传文件到这个资料库。默认没有限制。
[quota]
library_file_limit = 100000
对所有的资料库设置一个默认的文件历史保留天数:
[history]
keep_days = days of history to keep
对于删除的资料库,不会被立即彻底清除。它们会被临时存放到“已删除的资料库”和“系统管理”中的“资料库回收站”中,默认会在30天后自动清除这些数据。如果需要修改保留天数:
[library_trash]
expire_days = 60
Seafile 会将一些信息保存到缓存中以提高性能,一些会话信息也会被保存到缓存中以在集群节点之间共享。Seafile 支持使用 Memcached 作为缓存。
如果您使用的是memcached:
[memcached]
# 如果您使用的不是本地的 memcached,替换 localhost 为相应地址
# POOL-MIN 和 POOL-MAX 用于控制连接池的大小。通常使用例子中给的值即可。
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100
Seafile 监听的端口号 (不要修改该设置)
[fileserver]
# Seafile tcp 端口 (不要修改该设置)
port = 8082
从社区版 6.2 和企业版 6.1.9 开始,你可以设置用于服务 http 请求的线程数。默认值是10个线程。这个默认值适用于大多数应用场景。
[fileserver]
worker_threads = 15
上传/下载大小限制:
[fileserver]
# 上传文件最大限制为200M,默认是无限制.
max_upload_size=200
# 最大下载目录限制为200M, 默认是100M.
max_download_dir_size=200
通过Web界面或客户端中的云端浏览器上传文件后,需要将其分成固定大小的块并存储到后端存储。我们称这个过程为“索引”。默认情况下,文件服务器使用1个线程顺序索引文件并逐个存储块。这适用与大多数情况。但是如果您使用的是 S3/Ceph/Swift 后端,则在存储后端可能会有更多带宽来并行存储多个块。我们提供了一个选项来定义索引中并发线程的数量;
[fileserver]
max_indexing_threads = 10
当用户在Web界面上传文件时,文件服务器将文件分割成固定大小的块。Web上传文件的默认块大小为8MB。块大小可以在这里设置。
[fileserver]
#Set block size to 8MB
fixed_block_size=8
当用户上传文件时,文件服务器分配一个令牌来授权上传操作。该令牌默认有效期1小时。通过WAN上传大型文件时,上传时间可能会超过1小时,您可以将令牌到期时间更改为更大的值。
[fileserver]
#Set uploading time limit to 3600s
web_token_expire_time=3600
您可以从Web界面下载文件夹为zip存档,但是Windows上的一些zip软件不支持UTF-8,在这种情况下,您可以使用"windows_encoding"设置来解决此问题。
[zip]
# The file name encoding of the downloaded zip file.
windows_encoding = iso-8859-1
“ httptemp”目录包含在文件上载和zip下载期间创建的临时文件。在某些情况下,文件传输中断后,临时文件不会被清除。从7.1.5版本开始,文件服务器将定期扫描“ httptemp”目录以删除很久以前创建的文件。
[fileserver]
# After how much time a temp file will be removed. The unit is in seconds. Default to 3 days.
http_temp_file_ttl = x
# File scan interval. The unit is in seconds. Default to 1 hour.
http_temp_scan_interval = x
自 Pro 7.1.16 和 Pro 8.0.3 中的新功能:您可以设置 Seafile 客户端可同步的资料库中包含的最大文件数。默认值为 100000。下载资料库时,Seafile 客户端会请求 fs id 列表,您可以通过 fs_id_list_request_timeout
选项控制请求的超时时间,默认为 5 分钟。添加这两个选项是为了防止长时间的 fs-id 列表请求导致服务器超载。
自专业版 8.0.4 起,您可以将这两个选项都设置为-1,以允许无限制的大小和超时。
[fileserver]
max_sync_file_count = 100000
fs_id_list_request_timeout = 300
从 Seafile Pro 8.0.6版本开始,您可以用移动端浏览器下载文件。
[fileserver]
# 允许所有文件上传、下载 token 被多次访问。
# 默认下载的 token 不允许多次访问,这造成了对一些移动端浏览器的不兼容。
web_token_reusable = false
如果您使用对象存储作为存储后端,当一个大文件频繁下载时,需要从存储后端获取相同的块到 Seafile 服务器。这可能会浪费带宽并导致内部网络的高负载。从 Seafile Pro 8.0.5 版本开始,我们添加了块缓存来改善这种情况。请注意,此配置仅对通过网页或 API 下载文件有效,对同步文件无效。
要启用此功能,请在 [fileserver] 组中设置 use_block_cache 选项。默认情况下未启用。
block_cache_size_limit 选项用于限制缓存的大小。其默认值为 10GB。这些块缓存在 seafile-data/block-cache 目录中。当缓存文的总大小超过限制时,seaf-server 将清理旧文件,直到大小减少到限制的 70%。清理间隔为 5 分钟。您必须很好地估计缓存目录需要多少空间。否则,在频繁下载时,这个目录会很快被填满。
block_cache_file_types 配置用于选择缓存的文件类型。 block_cache_file_types 默认值为 mp4;mov。
use_block_cache = true
# 将块缓存大小限制设置为 100MB
block_cache_size_limit = 100
# 针对特定的文件后缀使用缓存,默认 mp4 和 mov 格式
block_cache_file_types = mp4;mov
当有大量文件通过网页、API上传时,基于文件内容计算块的哈希值会有很大的计算开销。从Seafile Pro 9.0.6版本开始,您可以通过增加skip_block_hash
选项来使用一个随机的字符串作为块ID,从而减少计算开销。注意,这个选项会影响 fsck 程序,使得无法检查块的内容是否损坏。因此设置了这个选项后,执行 fsck 的时候需要指定 --shallow
选项,不验证块内容的完整性。
[fileserver]
skip_block_hash = true
如果你想在上传文件时限制文件类型,从 Pro 10.0.0 版本开始,您可以在 [fileserver] 组中设置 file_ext_white_list
选项。该选项是一个文件类型列表,只有列表中的文件类型才允许上传。默认情况下不启用。
[fileserver]
file_ext_white_list = md;mp4;mov
从 10.0.1 版本开始,使用 go fileserver 时,您可以在 [fileserver] 组中设置 upload_limit
和 download_limit
选项,以限制文件上传和下载的速度。默认情况下是不启用的。
[fileserver]
# 单位是 KB/s。
upload_limit = 100
download_limit = 100
当您将seafile服务器配置为使用MySQL时,默认连接池大小为100,这对于大多数用例应该是足够的。您可以通过在seafile.conf中添加以下选项来更改此值:
[database]
......
# Use larger connection pool
max_connections = 200
从社区版 10.0.5 和企业版 10.0.7 开始,您可以使用 MariaDB/MySQL 提供的 unix_socket 认证插件。您可以通过增加 unix_socket
选项,并且去掉 user
和 password
选项,来开启该功能。
[database]
......
# unix socket 文件路径
unix_socket = /var/run/mysqld/mysqld.sock
Seafile-pro-6.3.10 开始,Seafile增加了 seaf-server 的 RPC 慢请求查询日志,便于管理员更好的做性能分析。
该功能是默认开启的,如果您想要自主配置相关选项,可以在 seafile.conf 中添加如下配置:
[slow_log]
# 默认为 true
enable_slow_log = true
# 所有慢请求日志阈值的单位为毫秒。
# 默认为5000毫秒,这意味着只有处理超过5000毫秒的RPC查询才会被记录。
rpc_slow_threshold = 5000
在 logs/slow_logs
目录下,可以找到 seafile_slow_rpc.log
;并且该日志文件支持使用 log-rotate 做日志切割,只需要向 seaf-server 进程发送 SIGUSR2
信号,进程就会关闭并重新打开日志文件。
自 9.0.2 Pro 起,触发日志旋转的信号已更改为SIGUSR1
。此信号将触发 seaf-server 打开的所有日志文件的轮换。您应相应地更改日志轮换设置。
尽管Nginx记录了所有具有某些详细信息的请求,例如url,响应代码,上游进程时间,但有时需要有更多关于请求的上下文,例如每个请求的用户ID。此类信息只能从文件服务器本身记录。从 9.0.2 Pro 开始,访问日志功能已添加到文件服务器。
要启用访问日志,请将以下选项添加到 seafile.conf
[fileserver]
# default to false. If enabled, fileserver-access.log will be written to log directory.
enable_access_log = true
日志格式如下:
start time - user id - url - response code - process time
可用于SIGUSR1
触发日志轮换。
从Seafile 9.0.7开始,您可以增加下面的选项来开启 go fileserver 的 profile 功能。
# profile_password是必须配置的,您可以按需修改。
[fileserver]
enable_profiling = true
profile_password = 8kcUz1I2sLaywQhCRtn2x1
这个接口可以通过 Go 语言提供的pprof
工具来使用。pprof
的详细信息,请参阅 https://pkg.go.dev/net/http/pprof。 请注意,您在使用以下命令之前,必须先安装 Go。 password 参数应该与您在配置中设置的相匹配。
go tool pprof http://localhost:8082/debug/pprof/heap?password=8kcUz1I2sLaywQhCRtn2x1
go tool pprof http://localhost:8082/debug/pprof/profile?password=8kcUz1I2sLaywQhCRtn2x1
从 Seafile 10.0.0 开始,您可以通过添加以下配置选项来启用通知服务:
# jwt_private_key 是必需的。您应该手动生成它。
[notification]
enabled = true
host = 127.0.0.1 # 通知服务的IP
port = 8083 # 通知服务的端口
log_level = info # 通知服务的日志级别
jwt_private_key = xxxxxx # jwt_private_key 用于生成 jwt 令牌和验证 seafile 服务
如果你使用nginx,那么你还需要为nginx添加如下配置:
server {
...
location /notification/ping {
proxy_pass http://127.0.0.1:8083/ping;
access_log /var/log/nginx/notification.access.log seafileformat;
error_log /var/log/nginx/notification.error.log;
}
location /notification {
proxy_pass http://127.0.0.1:8083/;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection "upgrade";
access_log /var/log/nginx/notification.access.log seafileformat;
error_log /var/log/nginx/notification.error.log;
}
...
}
请重启 Seafile 和 Seahub 以使修改生效:
./seahub.sh restart
./seafile.sh restart
Seafile Pro服务在一段时间后自动过期文件锁,以防止锁定的文件被锁定太久。可以在seafile.conf文件中调整到期时间。
[file_lock]
default_expire_hours = 6
默认时间是12小时。
从Seafile Pro 9.0.6开始,您可以增加缓存来获取已经锁定的文件(为了减少由于客户端导致的服务器负载)。
[file_lock]
use_locked_file_cache = true
与此同时,您需要配置memcache来使该缓存生效。
[memcached]
memcached_options = --SERVER=<the IP of Memcached Server> --POOL-MIN=10 --POOL-MAX=100
Last modified by 敦福生, 2024-07-30