兰空图床使用 AWS s3 协议连接 backblaze b2

2023-11-18 Views 图床 | B2236字2 min read

AWS s3 的 sdk 中,默认存在 ACL 配置,参数值默认为 private,因为 b2 控制台中没有 ACL 设置,使用公开的 bucket 会出现错误:Cannot parse S3 Canned ACL value of 'private',所以需要稍微修改点代码,覆盖 ACL 配置。

打开文件:

// 文件路径:lsky-pro/app/Services/ImageService.php
 bucket: $configs->get(MinioOption::Bucket), 

在 356 行下面追加一行:

options: ['params' => ['ACL' => '']],


示例:

StrategyKey::Minio => new AwsS3V3Adapter(
    // ...
    bucket: $configs->get(MinioOption::Bucket),
    options: ['params' => ['ACL' => '']],  // <-- 这里是新增的一行
    // ...
),

然后在创建储存策略时,选择 Minio 进行配置即可,以下是配置示例:

其中的 Bucket连接地址区域,可以在 b2 控制台创建 Backet 以后找到,AccessKeySecretKey 便是控制台中 App Key 中创建的前面,key ID = AccessKeyapplicationKey = Secret Key

注意:

  • 不要使用 Master Application Key,它不兼容 S3 协议。
  • 在 2020 年 5 月 4 日之前创建的桶不支持 s3 协议。
EOF