Amazom S3 下安装

准备工作

为了安装 Seafile 专业版服务器并使用亚马逊 S3,您需要:

# Version 10.0 or earlier
sudo pip install boto

# Since 11.0 version
sudo pip install boto3

不同的 S3 存储有不同的配置选项。我们将分别介绍这些配置。

AWS 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

还需按照添加内存缓存配置:缓存配置

各配置项释义如下:

如果您使用的S3是中国区,还需要在每个bucket配置段下添加相应地区的host配置,例如中国北京区:

host = s3.cn-north-1.amazonaws.com.cn

为了让搜索等服务也能在新的 AWS 服务区工作,你还需要在 ~/.boto 文件中加入以下几行:

[s3]
use-sigv4 = True

使用用户提供的密钥进行服务器端加密 (SSE-C)

从 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>

还需要添加内存缓存配置:缓存配置

配置项释义:

为了使文件搜索和webdav与v4签名机制一起工作,您需要在\~/.boto中添加以下行:

[s3]
use-sigv4 = True

私有部署的 S3 存储

许多私有部署的对象存储系统现在都兼容 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

还需要添加内存缓存配置:缓存配置

配置项释义:

以下是上面示例配置中未显示的几个选项:

使用HTTPS连接到S3

要使用 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

准备工作
AWS S3
使用用户提供的密钥进行服务器端加密 (SSE-C)
第三方公有云服务
私有部署的 S3 存储
使用HTTPS连接到S3
启动服务测试