Sentry是一个流行的开源错误跟踪解决方案,在自部署(Self-hosted)版本中,默认情况下,Sentry使用本地文件系统来存储各种文件,例如Releases中上传的制品(Source Maps)、Replays等数据。随着时间的推移,硬盘空间的占用会因这些文件的累积而越来越大。
因此,需要将部分文件转移到外部存储以降低服务器的硬盘占用。另外,也可以充分利用OSS的生命周期功能将不常访问的数据沉降以节省存储成本。
切换文件系统到阿里云OSS
- 在sentry目录下找到
sentry/config.yml
文件,该文件是sentry的配置文件。 - 定位到文件中的
File storage
部分,此部分则为文件存储的配置项。 - 将文件存储后端
filestore.backend
更改为s3,这里的s3是指兼容S3的存储服务,阿里云OSS就是其中之一。
然后在filestore.options
下填写OSS相关配置信息,格式如下:
filestore.backend: 's3'
filestore.options:
access_key: 'ALIYUN_ACCESS_KEY'
secret_key: 'ALIYUN_SCRET_KEY'
bucket_name: 'my-bucket'
custom_domain: 'my-bucket.oss-cn-beijing.aliyuncs.com'
endpoint_url: 'https://my-bucket.oss-cn-beijing-internal.aliyuncs.com'
region_name: 'cn-beijing'
location: '/data/files'
- 保存文件。
- 回到sentry目录,执行
docker compose down
关闭项目,以避免迁移过程中有新文件的产生。 - 进入
/var/lib/docker/volumes/sentry-data/_data/
目录,将全部现有文件上传到oss的sentry-data/data
目录下。 - 执行
docker compose start
启动项目即可生效。
发表回复