为了安装 Seafile 专业版服务器并使用亚马逊 S3,您需要:
按照 下载安装 Seafile 专业版服务器 指南安装基本的 Seafile 专业版服务器。
安装 python 的 boto
库。它可以用来访问 S3 服务。
# Version 10.0 or earlier
sudo pip install boto
# Since 11.0 version
sudo pip install boto3
不同的 S3 存储有不同的配置选项。我们将分别介绍这些配置。
AWS S3 是最初的 S3 存储提供商。
编辑 seafile.conf
文件
[commit_object_backend]
name = s3
bucket = my-commit-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
[fs_object_backend]
name = s3
bucket = my-fs-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
[block_backend]
name = s3
bucket = my-block-objects
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = eu-central-1
还需按照添加内存缓存配置:缓存配置
各配置项释义如下:
bucket:需要为commit
、fs
和block
对象创建单独的桶,当您在 S3 上创建 buckets 时,请先阅读 S3 bucket 命名规则。注意, 尤其不要在 bucket
的名字中使用大写字母(不要使用骆驼式命名法,比如 MyCommitOjbects)。
key_id 和 key: key_id
和 key
用来提供 S3 的身份认证。您可以在您的 AWS 账户页面的"安全证书"段找到 key_id
和 key
。
use_v4_signature:有两种版本的身份验证协议可用于S3存储。版本2是较旧的版本,一些区域可能仍支持它;版本4是Amazon S3当前使用的版本,并得到大多数区域的支持。如果不设置此选项,Seafile将使用v2协议,建议使用v4协议。
aws_region:如果使用v4协议,请将此选项设置为创建桶时选择的区域。如果没有设置,并且您使用的是v4协议,Seafile将使用us-east-1
作为默认值。如果您使用v2协议,此选项将被忽略。
如果您使用的S3是中国区,还需要在每个bucket配置段下添加相应地区的host配置,例如中国北京区:
host = s3.cn-north-1.amazonaws.com.cn
为了让搜索等服务也能在新的 AWS 服务区工作,你还需要在 ~/.boto
文件中加入以下几行:
[s3]
use-sigv4 = True
从 Pro 11.0 开始,您可以将 SSE-C 用于 S3。在 seafile.conf 中添加以下选项:
[commit_object_backend]
name = s3
......
use_v4_signature = true
use_https = true
sse_c_key = XiqMSf3x5ja4LRibBbV0sVntVpdHXl3P
[fs_object_backend]
name = s3
......
use_v4_signature = true
use_https = true
sse_c_key = XiqMSf3x5ja4LRibBbV0sVntVpdHXl3P
[block_backend]
name = s3
......
use_v4_signature = true
use_https = true
sse_c_key = XiqMSf3x5ja4LRibBbV0sVntVpdHXl3P
ssk_c_key
是一个 32 字节的随机字符串。
国内市场上还有其他与S3兼容的云存储提供商,如阿里云、腾讯云和华为云。以下是相关配置:
编辑 seafile.conf
文件
[commit_object_backend]
name = s3
bucket = my-commit-objects
host = <access endpoint for storage provider>
key_id = your-key-id
key = your-secret-key
#v2 authentication protocol will be used if not set
use_v4_signature = true
#required for v4 protocol. ignored for v2 protocol
aws_region = <region name for storage provider>
[fs_object_backend]
name = s3
bucket = my-fs-objects
host = <access endpoint for storage provider>
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = <region name for storage provider>
[block_backend]
name = s3
bucket = my-block-objects
host = <access endpoint for storage provider>
key_id = your-key-id
key = your-secret-key
use_v4_signature = true
aws_region = <region name for storage provider>
还需要添加内存缓存配置:缓存配置
配置项释义:
host:访问存储服务的端点。通常以地区名称开头。必须提供主机地址,否则Seafile将使用AWS的地址。
bucket:需要为commit
、fs
和block
对象创建单独的桶。
key_id 和 key: key_id
和 key
用来提供 S3 的身份认证。
use_v4_signature:有两种版本的身份验证协议可用于S3存储。版本2是较旧的版本,一些服务商可能仍支持它;版本4是Amazon S3当前使用的版本,并得到大多数服务商的支持。如果不设置此选项,Seafile将使用v2协议,建议使用v4协议。
aws_region:如果使用v4协议,请将此选项设置为创建桶时选择的区域。如果没有设置,并且您使用的是v4协议,Seafile将使用us-east-1
作为默认值。如果您使用v2协议,此选项将被忽略。
为了使文件搜索和webdav与v4签名机制一起工作,您需要在\~/.boto中添加以下行:
[s3]
use-sigv4 = True
许多私有部署的对象存储系统现在都兼容 S3 API,例如 OpenStack Swift 和 Ceph 的 RADOS Gateway。你可以使用这些兼容 S3 的存储系统作为 Seafile 的后端。下面是一个配置示例:
[commit_object_backend]
name = s3
bucket = my-commit-objects
key_id = your-key-id
key = your-secret-key
host = 192.168.1.123:8080
path_style_request = true
[fs_object_backend]
name = s3
bucket = my-fs-objects
key_id = your-key-id
key = your-secret-key
host = 192.168.1.123:8080
path_style_request = true
[block_backend]
name = s3
bucket = my-block-objects
key_id = your-key-id
key = your-secret-key
host = 192.168.1.123:8080
path_style_request = true
[memcached]
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100
还需要添加内存缓存配置:缓存配置
配置项释义:
host:它是 S3 兼容服务的地址和端口。不能在 host
选项前添加 "http "或 "https"。默认情况下,它将使用 http 连接。如果要使用 https 连接,请设置 use_https = true
选项。
bucket:需要为commit
、fs
和block
对象创建单独的桶。
key_id 和 key: key_id
和 key
用来提供 S3 的身份认证。
path_style_request
要求 Seafile 使用类似 https://192.168.1.123:8080/bucketname/object
的 URL 来访问对象。在亚马逊 S3 中,默认的 URL 格式是虚拟主机样式,如https://bucketname.s3.amazonaws.com/object
。但这种方式依赖于高级 DNS 服务器设置。因此,大多数兼容 S3 的存储系统只实现了路径样式格式。
以下是上面示例配置中未显示的几个选项:
use_v4_signature:有两种版本的身份验证协议可用于S3存储。版本2是大多数私有部署存储支持的协议;版本4是AWS S3当前使用的协议,但某些私有部署存储可能不支持。如果不设置此选项,Seafile将使用v2协议。我们建议先使用V2,如果它不起作用,请尝试V4。
aws_region:如果使用v4协议,请将此选项设置为创建桶时选择的区域。如果没有设置,并且您使用的是v4协议,Seafile将使用us-east-1
作为默认值。如果您使用v2协议,此选项将被忽略。
要使用 HTTPS 连接到 S3,请在 seafile.conf 中添加以下选项:
[commit_object_backend]
name = s3
......
use_https = true
[fs_object_backend]
name = s3
......
use_https = true
[block_backend]
name = s3
......
use_https = true
因为服务器软件包是基于CentOS 6构建的,所以如果您使用的是Debian / Ubuntu,则必须将系统CA软件包复制到CentOS的CA软件包路径。否则,Seafile找不到CA捆绑软件,因此SSL连接将失败。
sudo mkdir -p /etc/pki/tls/certs
sudo cp /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt
sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/pki/tls/cert.pem
您可以通过以下命令启动seafile服务并访问您的网站。
./seafile.sh start
./seahub.sh start
Last modified by 徐家强, 2024-08-01