前言

花了几个小时研究了一下在兰空图床中使用Minio作为存储策略,官方并没有给出太多关于minio的储存策略配置文档,我是经过反复尝试,然后根据错误日志的提示以及查阅兰空图床在GitHub上面的issues悟出来的配置方法。

因为我的兰空图床和Minio都是基于群晖的NAS设备DS423+的docker功能进行搭建,所以我只能在这样的情况下给大家进行演示,大家可以参考一下思路。

教程

  1. 打开Minio,登录后台。选择“Access Keys”,点击“Create Access Key”。

  2. 给访问钥匙命个名,方便后续维护,其他默认即可,然后点击“Create”。

  3. 在“Configuration”中配置“Region”,填写“us-east-1​”。

  4. 打开兰空图床中的“ImageService.php”文件进行编辑。

    我的兰空图床是使用群晖的docker进行搭建的,图中的路径仅供参考,请根据自己兰空图床部署的实际路径进行查找。

  5. 在第356行('bucket_endpoint' => (bool)$configs->get(MinioOption::BucketEndpoint),​)下面添加一行配置,然后保存一下,最后重启一下兰空图床。

    //...
    'use_path_style_endpoint' => true,
    //...
    

    参数解释:
    是否使用路径样式(Path-Style)

    1. 虚拟主机样式(Virtual Hosted-Style)URL:这是默认的 URL 样式,它基于存储桶和对象的 DNS 名称。例如 https://bucket-name.s3.amazonaws.com/object-key

    2. 路径样式(Path-Style)URL:这种 URL 样式在主机名后使用存储桶名称作为路径的一部分。例如 https://s3.amazonaws.com/bucket-name/object-key

    true 则表示使用路径样式(Path-Style),默认为 false

  6. 打开兰空图床,登录后台,选择“储存策略”,点击“创建储存策略”。

  7. ①“选择角色组”根据自己实际情况进行选择;

    ②“名称”根据自己喜好进行命名即可;

    ③“存储策略”选择Minio​;

    ④“访问域名”根据你自己部署的minio,填写其资源对象访问的API所绑定的域名+存储桶名称;

    如果你想将资源上传到存储桶内的某个文件夹下,那么此处应该填写minio api域名+存储桶名称+文件夹名称,例如“<Domain_Name>/<Bucket_Name>/<Folder_Name>​”

    ⑤“AccessKey”根据前面生成的访问钥匙进行填写;

    ⑥“SecretKey”根据前面生成的访问钥匙进行填写;

    ⑦“连接地址”根据你自己部署的minio,填写其资源对象访问的API所绑定的域名;

    如果你的minio和兰空图床部署在同一个服务器上面,我建议这里这里填写内网的访问地址,这样速度更快。

    ⑧“区域(region)”根据你的minio所配置的区域进行填写;

    ⑨“储存桶名称”根据你所创建的桶名称进行填写;

    如果你想将资源上传到存储桶内的某个文件夹下,那么需要将文件夹的名称也填写在存储桶名称后面,例如“<Bucket_Name>/<Folder_Name>​”

    ⑩“BucketEndpoint”一定要是打开状态。

    完成上述步骤后,点击“确认创建”。