Forgejo 支持 s3 存储,可以把除核心 repos 之外的文件存在云存储服务中。腾讯云的计算服务器的磁盘空间成本还是比较高的,因此腾讯云的 COS 就成了第一选择。不过,COS 与 S3/MiniIO 还是有些不同。本文记述 Forgejo 接入 COS 的过程。
创建专用子账户
登录腾讯云控制台,通过右上用户菜单,进入 访问管理 > 用户 > 用户列表,点击 新建用户,选择 快速创建。
- 用户名:
forgejo - 访问方式:勾选
编程访问 - 权限:选择策略
QcloudAccessForAgsCosReadWrite
记录下密钥信息。
创建 COS Bucket
进入 对象存储,创建存储桶 forgejo。假设最终的桶名称是 forgejo-1300000000。
进入桶权限管理,在用户权限处添加子帐号的权限,选择完全控制。
修改 Forgejo 配置
编辑 /etc/forgejo/app.ini:
[storage]
STORAGE_TYPE = minio
MINIO_ENDPOINT = cos.ap-beijing.myqcloud.com
MINIO_ACCESS_KEY_ID = <YOUR_SECRET_ID>
MINIO_SECRET_ACCESS_KEY = <YOUR_SECRET_KEY>
MINIO_BUCKET = forgejo-1300000000
MINIO_LOCATION = ap-beijing
MINIO_USE_SSL = true
MINIO_CHECKSUM_ALGORITHM = md5
MINIO_BUCKET_LOOKUP = dns
[storage.lfs]
MINIO_BASE_PATH = lfs
[storage.attachments]
MINIO_BASE_PATH = attachments
[storage.releases]
MINIO_BASE_PATH = releases
[storage.avatars]
MINIO_BASE_PATH = avatars
[storage.repo-avatars]
MINIO_BASE_PATH = repo-avatars
[storage.packages]
MINIO_BASE_PATH = packages
[storage.actions]
MINIO_BASE_PATH = actions
重点是
MINIO_ENDPOINT = cos.ap-beijing.myqcloud.com
MINIO_BUCKET_LOOKUP = dns
AI 可能会建议切换到 SeaweedFS 或者 MiniIO,然后再寻另建同步到 COS 的策略。完全没有必要,尽管 COS 声称新桶不再支持虚拟目录风格,但是这样的配置是能够正常工作的。
然后重启 Forgejo,确认是否能正常工作。可以尝试修改 Forgejo 一个 账户/组织/仓库 的头像,看看腾讯控制台中桶的文件列表中 avatars 目录下是否有新文件生成。
经过我的测试,Forgejo 似乎不能将此前积累的本地文件自动上传到 COS,可能需要手动上传一次。
评论表单