实际上兰空图床是支持 backblaze b2 的,只不过 AWS s3 的 sdk 中,默认存在 ACL(https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html) 配置,参数值默认为 private,因为 b2 控制台中没有 ACL 设置,使用公开的 bucket 会出现错误:Cannot parse S3 Canned ACL value of 'private'
,所以需要稍微修改点代码,覆盖 acl 配置。
打开文件:
lsky-pro/app/Services/ImageService.php
Line 339 in a8ab0c6
| | bucket: $configs->get(MinioOption::Bucket), |
在 339 行下面追加一行:
options: ['params' => ['ACL' => '']],
示例:
StrategyKey::Minio => new AwsS3V3Adapter(
// ...
bucket: $configs->get(MinioOption::Bucket),
options: ['params' => ['ACL' => '']], // <-- 这里是新增的一行
// ...
),
然后在创建储存策略时,选择 Minio 进行配置即可,以下是配置示例。\
其中的 Bucket、连接地址和区域,可以在 b2 控制台创建 Backet 以后找到,AccessKey 和 SecretKey 便是控制台中 App Key 中创建的前面,key ID = AccessKey,applicationKey = Secret Key。
注意:
- 不要使用 Master Application Key,它不兼容 S3 协议。
- 在 2020 年 5 月 4 日之前创建的桶不支持 s3 协议。
https://github.com/lsky-org/lsky-pro/discussions/448