OSS系统概述
文件服务可以形成一个统一的访问标准,降低各个系统之间的互相依赖,提高开发效率、释放业务系统压力,所以搭建独立的文件服务是解决文件共享、释放业务系统压力的最优选择。
独立的文件服务的优势有如下几点:
降低WEB服务器压力
分担业务服务器的I0、流程负载,将耗费资源的文件访问、读写操作分离到文件服务器,可以提高服务器的性能和稳定性,降低WEB服务器成本。
独立服务易扩展
文件服务像微服务架构独立化,可以有针对性的进行配置提高性能;独立域名让图片管理、CDN缓存文件更方便,随时扩展文件服务器数量,即不影响业务又能增加文件服务器并发访问。
统一访问格式
开发者无需关心存储路径、存储介质、文件备份等,丰富的API帮助系统快速存储、共享文件,提高项目开发速度。
安全认证
文件服务对资源访问可以增加认证、权限等安全措施,防止服务器资源被盗用,有效的隔离了数据访问。
文件服务基本概念
便于更好的理解对象存储OSS,需要了解对象存储中的几个概念。
对象/文件(Object)
对象是OSS存储数据的基本单元,也被称为OSS的文件。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由存储空间内部唯一的Key来标识。对象元信息是一个键值对,表示了对象的一些属性,比如最后修改时间、大小等信息,同时用户也可以在元信息中存储一些自定义的信息。对象的生命周期是从上传成功到被删除为止。在整个生命周期内,对象信息不可变更。重复上传同名的对象会覆盖之前的对象,因此,OSS 不支持修改文件的部分内容等操作。
存储空间(Bucket)
存储空间是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。可以设置和修改存储空间属性用来控制地域、访问权限、生命周期等,这些属性设置直接作用于该存储空间内所有对象,因此可以通过灵活创建不同的存储空间来完成不同的管理功能;
同一个存储空间的内部是扁平的,没有文件系统的目录等概念,所有的对象都直接隶属于其对应的存储空间;
每个用户可以拥有多个存储空间;
存储空间的名称在 OSS 范围内必须是全局唯一的,一旦创建之后无法修改名称;
存储空间内部的对象数目没有限制。
访问密钥(AppKey & AppSecret)
AppKey代表应用身份,AppSecret即应用密钥,用于生成签名认证,请求文件服务时必须要传递appkey和签名生产的token,网关根据请求验证请求的合法性性和时效性。
minio文件服务器搭建
一、下载安装
中文官网地址:
https://docs.min.io/cn/
下载地址:
GNU/Linux
https://dl.min.io/server/minio/release/linux-amd64/minio
Windows
https://dl.min.io/server/minio/release/windows-amd64/minio.exe
赋予文件夹权限:
chmod +x minio
二、启动运行
Linux
1、进入 minio 存放目录:cd /usr/local/minio
2、执行命令:./minio server /home/minio/data
(/home/minio/data 为你存放静态文件的目录)
3、后台运行:nohup /usr/local/minio server /home/minio/data > /home/minio/data/minio.log 2>&1 &
后台启动,并打印日志
Windows
1、进入 minio.exe 存放目录(D:\minio\data 为你存放静态文件的目录)
2、打开 cmd 执行命令:minio.exe server D:\minio\data
启动后会打印出AccessKey和SecretKey等信息:
三、默认配置信息
默认 AccessKey 和 SecretKey:
AccessKey:minioadmin
SecretKey:minioadmin
默认端口:
9000
三、修改默认配置
自定义 AccessKey 和 SecretKey:
export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=miniostorage
自定义端口:
./minio server --address IP:PORT /home/minio/data
自定义文件夹地址:
export MINIO_VOLUMES="/home/minio/data"
Docker下安装(需要先安装docker)
docker pull minio/minio
docker run -p 9000:9000 -e MINIO_ACCESS_KEY=admin -e MINIO_SECRET_KEY=admin 123 -v /data:/data minio/minio server /data