minio

Minio是一个非常轻量的对象存储服务。

Github: minio

它本身不支持文件的版本管理。如果有这个需求,可以用 s3git 搭配使用。

Github: s3git

安装

minio 文档有列出各平台的安装方式。这里只说 docker 的方式。

docker-compose.yml

version: "3"

services:
  minio:
    image: minio/minio
    volumes:
      - minio-data:/data
    ports:
      - "9080:9000"
    environment:
      MINIO_ACCESS_KEY: minio
      MINIO_SECRET_KEY: minio123
    command: server /data

volumes:
  minio-data:

将上面内容保存为 docker-compose.yml 文件。然后在这个文件所在的文件夹内执行 docker-compose up -d。minio 服务就启动了。

minio 界面

服务启动后,访问 http://127.0.0.1:9080 进入登录界面:

输入上面设置的 access key:minio 和 secret key:minio123,登录。

图中 1 是上传一个文件;图中 2 是创建一个 bucket (储存区)。

文件必须上传到某一个存储区里面,因此必须先创建一个 bucket。

文件上传后,一旦选择文件,就会在顶部出现删除和下载的操作按钮。

在 Laravel 里使用

配置

  1. 引入包
    composer require league/flysystem-aws-s3-v3
  2. 修改 config/filesystems.php

    ...
    'cloud' => env('FILESYSTEM_CLOUD', 'minio'),
    ...
    'disks' => [
        ...
        'minio' => [
            'driver' => 's3',
            'endpoint' => env('MINIO_ENDPOINT'),
            'use_path_style_endpoint' => true,
            'key' => env('MINIO_ACCESS_KEY_ID'),
            'secret' => env('MINIO_SECRET_ACCESS_KEY'),
            'region' => env('MINIO_DEFAULT_REGION'),
            'bucket' => env('MINIO_BUCKET'),
        ],
        ...
    ]
  3. 修改 .env

    FILESYSTEM_CLOUD=minio
    MINIO_ENDPOINT="http://127.0.0.1:9080"
    MINIO_ACCESS_KEY_ID=minio
    MINIO_SECRET_ACCESS_KEY=minio123
    MINIO_DEFAULT_REGION=cn-north-1
    MINIO_BUCKET=刚创建的bucket名称

尝试

  1. 打开 tinker
    php artisan tinker
  2. 存储
    Storage::cloud()->put('hello.json', '{"hello": "world"}');
    结果:true
  3. 取出
    Storage::cloud()->get('hello.json');
    结果:{"hello": "world"}

轻量对象存储服务——minio的更多相关文章

  1. 对象存储服务-Minio

    Mino 目录 Mino 对象存储服务 Minio 参考 Minio 架构 为什么要用 Minio 存储机制 纠删码 MinIO概念 部署 单机部署: Docker 部署Minio 分布式Minio ...

  2. 对象存储服务MinIO安装部署分布式及Spring Boot项目实现文件上传下载

    目录 一.MinIO快速入门 1. MinIO简介 2. CentOS7更换成阿里云镜像 3. 安装 3.1 下载 3.2 运行测试 4. 配置脚本执行文件 4.1 创建配置执行文件 4.2 执行 二 ...

  3. 使用MinIO搭建对象存储服务

    1.MinIO是什么? MinIO 是一款高性能.分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件.即X86等低成本机器也能够很好的运行MinIO. MinIO与传统的存储和其 ...

  4. 免费版对象存储【minIO】CentOS部署实践记录 2021

    好久没写,记录一下 1.背景 之前一直用的七牛,不过是收费的,然后有些定制化需求,可能比较看重预算,然后就有了这篇开源方式:minio 2.简介 官方文档:http://docs.minio.org. ...

  5. Github 29K Star的开源对象存储方案——Minio入门宝典

    对象存储不是什么新技术了,但是从来都没有被替代掉.为什么?在这个大数据发展迅速地时代,数据已经不单单是简单的文本数据了,每天有大量的图片,视频数据产生,在短视频火爆的今天,这个数量还在增加.有数据表明 ...

  6. COS对象存储服务的使用

    ---------------------------------------------------------------------------------------------[版权申明:本 ...

  7. 对象存储服务(Object Storage Service,简称 OSS)

    阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99 ...

  8. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 四

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

  9. openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 三

    openstack-r版(rocky)搭建基于centos7.4 的openstack swift对象存储服务 一 openstack-r版(rocky)搭建基于centos7.4 的openstac ...

随机推荐

  1. linux inotify 文件变化检测

    用webstorm开发angular项目的时候,改写文件后发现热更新有时候会失效,从而不得不重新运行下项目,然而这浪费了好多时间,google一番后,解决办法如下 echo fs.inotify.ma ...

  2. element-ui MessageBox的bug

    通过 use引用messageBox有bug Vue.use(MessageBox) 页面一开始会有一个弹窗,内容空白 Vue.component(MessageBox.name, MessageBo ...

  3. Spring Boot配置文件放在jar外部

    Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢? 查询官网,可以得到下面的几种方案: 通过命令 ...

  4. JMeter通过自定义jar调用和BeanShell源码

    自定义jar包引用 原始java代码,代码的作用的是根据指定的字符串,生成执行长度的随机字符串 package com; import java.util.Random; public class r ...

  5. Python题目练习(二)

    1.如何实现对python列表去重,并保持原来顺序 li = [1,2,5,3,1,6,3,8,0,3,2,4] l = [] for i in li: if i not in l: l.append ...

  6. Fiddler教程--简介

    1.开发环境host配置 自己修改系统的host来回挺麻烦的 2.前后的接口调试 3.线上bugfix 4.性能分析和优化 5.等等... 工作原理 一个代理服务器 地址改为 127.0.0.1:88 ...

  7. Shiro笔记(二)Shiro集成SpringMVC的环境配置

    0.pom文件引入 <!-- SECURITY begin --> <dependency> <groupId>org.apache.shiro</group ...

  8. for循环的简介及break和continue的区别

    break和continue都是用来控制循环结构的,主要是停止循环. 1.break 有时候我们想在某种条件出现的时候终止循环而不是等到循环条件为false才终止. 这是我们可以使用break来完成. ...

  9. html-模仿小米首页定位案例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 【python】常用第三方模块

    No1: [Pillow]图像处理标准库 缩放 from PIL import Image # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获 ...