Amazom S3 下安装

准备工作

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

sudo easy_install boto

# Start with a cap of 64 megs of memory. It's reasonable, and the daemon default
# Note that the daemon will grow to this size, but does not start out holding this much
# memory
# -m 64
-m 128

修改 seafile.conf

编辑 /data/haiwen/conf/seafile.conf 文件

[commit_object_backend]
name = s3
# bucket 的名字只能使用小写字母,数字,短划线
bucket = my-commit-objects
key_id = your-key-id
key = your-secret-key

[fs_object_backend]
name = s3
# bucket 的名字只能使用小写字母,数字,短划线
bucket = my-fs-objects
key_id = your-key-id
key = your-secret-key

[block_backend]
name = s3
# bucket 的名字只能使用小写字母,数字,短划线
bucket = my-block-objects
key_id = your-key-id
key = your-secret-key

[memcached]
memcached_options = --SERVER=localhost --POOL-MIN=10 --POOL-MAX=100

建议您为 commit,fs 和 block objects 分别创建 buckets。 key_id 和 key 用来提供 S3 的身份认证。您可以在您的 AWS 账户页面的"安全证书"段找到 key_id 和 key。

当您在 S3 上创建 buckets 时,请先阅读 S3 bucket 命名规则。注意, 尤其不要在 bucket 的名字中使用大写字母(不要使用骆驼式命名法,比如 MyCommitOjbects)。

为了获得最佳性能,强烈建议您安装 memcached 并且为 objects 启用 memcache。

使用新的 S3 服务区

自2014年一月起,新的 AWS 服务区只对 S3 提供版本 4 的认证签名协议支持。这包括中国区。

要在新的服务区使用 S3,在三个bucket(桶) "commit_object_backend", "fs_object_backend", "block_backend" 相关选项中加入一下额外的选项:

use_v4_signature = true
# eu-central-1 for Frankfurt region
aws_region = eu-central-1

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

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

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

[s3]
use-sigv4 = True

使用HTTPS连接到S3

从Pro 5.0.4开始,您可以使用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

使用与 S3 兼容的对象存储产品

目前已经有很多对象存储产品兼容 S3 的协议,比如 OpenStack Swift 和 Ceph 的 RGW。你可以通过以下配置使用 S3 兼容的对象存储:

[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兼容服务的地址和端口。您不能在选项前添加“ http”或“ https” 。默认情况下,它将使用http连接。如果要使用https连接,请设置选项。hostuse_https = true path_style_request 选项让 Seafile 使用形如 https://192.168.1.123:8080/bucketname/object 去访问对象。在亚马逊的 S3 服务中,默认的 URL 格式是虚拟主机格式,比如 https://bucketname.s3.amazonaws.com/object。但是一般的对象存储并不支持这种格式。

Last modified by seafile-test, 2023-06-21

准备工作
修改 seafile.conf
使用新的 S3 服务区
使用HTTPS连接到S3
使用与 S3 兼容的对象存储产品