这是一个将 s3 bucket 分割成多个子用户使用的 rclone auth proxy 插件
懒得配 Github Actions, 直接从源码构建 (等有空的时候配上)
go install github.com/shynome/s3-split@latest所有用户都使用同一个 SECRET_ACCESS_KEY(复杂一些就行了), 区分用户反而依靠于 ACCESS_KEY_ID (因为这是 rclone seve s3 里的逻辑, 不改了就按这样来工作量最小可维护性最好)
rclone serve s3 --auth-proxy s3-split --auth-key ACCESS_KEY_ID,SECRET_ACCESS_KEY注意: rclone serve 会缓存认证结果, 所以如果看到文件列表不一致时记得重启进程试试
在 rclone.conf 配置 s3users 块, 添加以下内容
[local]
type = local
[s3users]
# ACCESS_KEY_ID 就是密码, 记得设置的复杂点, 分用户是靠路径分割的
# [ACCESS_KEY_ID] = [后端:路径]
ACCESS_KEY_ID = local:/tmp/s3-split/ACCESS_KEY_ID
ACCESS_KEY_ID2 = local:/tmp/s3-split/user2
[s3test]
type = s3
provider = Rclone
endpoint = http://127.0.0.1:8080/
# 把下面的值改成 ACCESS_KEY_ID2 就是另一个用户的文件
access_key_id = ACCESS_KEY_ID
secret_access_key = SECRET_ACCESS_KEY
use_multipart_uploads = false
# 创建测试用目录
mkdir -p /tmp/s3-split/ACCESS_KEY_ID/bucket1 /tmp/s3-split/user2
# 使用 webdav 测试管理文件
rclone serve webdav --addr 127.0.0.1:8000 s3test:/bucket1
# 测试完成后清理测试文件夹
rm -r /tmp/s3-split在文件管理器打开 webdav://127.0.0.1:8000/ , 看看上传是否正常