网站开发流程图 最,企业网站自己可以做吗,ppt主题大全素材,flash打开网站源码介绍
MinIO是一个开源的分布式对象存储服务#xff0c;它允许用户在私有云或公有云环境中构建自己的对象存储基础设施。MinIO旨在提供高性能、高可用性的对象存储#xff0c;并且与Amazon S3兼容#xff0c;这意味着可以使用S3客户端工具和库直接与MinIO交互#xff0c;而…介绍
MinIO是一个开源的分布式对象存储服务它允许用户在私有云或公有云环境中构建自己的对象存储基础设施。MinIO旨在提供高性能、高可用性的对象存储并且与Amazon S3兼容这意味着可以使用S3客户端工具和库直接与MinIO交互而无需更改现有的应用程序代码。
以下是一些关键的MinIO特性和信息 分布式架构 MinIO设计为具有分布式架构允许用户将多个MinIO实例组合成一个集群提供高可用性和可扩展性。每个MinIO实例可以运行在独立的硬件节点上通过负载均衡器或DNS轮询等方式进行负载均衡。 S3兼容性 MinIO与Amazon S3的API兼容这意味着现有的S3客户端工具和库可以直接用于与MinIO进行交互。这种兼容性使得迁移现有S3应用程序到MinIO变得相对简单。 开源 MinIO是开源的它的源代码可以在GitHub上获得。这使得用户能够审查和修改源代码以满足他们特定的需求并且可以在社区的支持下获得帮助。 轻量级 MinIO设计为轻量级和高性能。它专注于提供快速的对象存储服务而不引入过多的复杂性。 安全性 MinIO支持SSL/TLS加密以确保在数据传输过程中的安全性。此外它还提供身份验证和访问控制功能以保护存储在MinIO中的数据。 版本控制 MinIO支持对象版本控制允许用户存储和检索不同版本的对象。这对于处理数据的变更和回滚操作非常有用。 事件通知 MinIO支持事件通知可以在对象被创建、删除或更新时触发通知。这为构建自动化工作流和应用程序提供了便利。 易于部署 MinIO提供了容器化的部署选项可以轻松地在容器环境中部署例如使用Docker。
总的来说MinIO是一个灵活、高性能、可扩展且S3兼容的对象存储解决方案适用于构建私有云、混合云或公有云环境中的存储基础设施。
部署
yum remove docker docker-common container-selinux docker-selinux docker-engine
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install -y docker-cedocker run -d \-p 9000:9000 \-p 9001:9001 \-e MINIO_ROOT_USERLIUYUNSHENG \-e MINIO_ROOT_PASSWORDLIUYUNSHENGKEY \minio/minio server /data --console-address 0.0.0.0:9001go相关操作代码
package mainimport (contextfmtlogospathgithub.com/aws/aws-sdk-go-v2/awsgithub.com/aws/aws-sdk-go-v2/configgithub.com/aws/aws-sdk-go-v2/credentialsgithub.com/aws/aws-sdk-go-v2/service/s3
)func main() {cfg, err : config.LoadDefaultConfig(context.TODO(),config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(LIUYUNSHENG, LIUYUNSHENGKEY, )),config.WithEndpointResolverWithOptions(aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) {return aws.Endpoint{URL: http://127.0.0.1:9000,}, nil})),config.WithRegion(cn-north-1),)if err ! nil {return}client : s3.NewFromConfig(cfg, func(o *s3.Options) {o.UsePathStyle true //https://s3.amazonaws.com/BUCKET/KEY})// 打印所有的桶result, err : client.ListBuckets(context.TODO(), s3.ListBucketsInput{})if err ! nil {return}for _, bucket : range result.Buckets {fmt.Println(*bucket.Name)}// 创建桶bucketName : liuysh-bucketclient.CreateBucket(context.TODO(), s3.CreateBucketInput{Bucket: bucketName})// 上传文件fileName : /var/lib/pgsql/pgsql/go/go1.21.5.linux-amd64.tar.gzfile, err : os.Open(fileName)fileBase : path.Base(fileName)if err ! nil {fmt.Printf(Couldnt open file %v to upload. Heres why: %v\n, fileName, err)} else {defer file.Close()_, err client.PutObject(context.TODO(), s3.PutObjectInput{Bucket: aws.String(bucketName),Key: aws.String(fileBase),Body: file,})if err ! nil {log.Printf(Couldnt upload file %v to %v:%v. Heres why: %v\n,fileName, bucketName, file.Name(), err)}}}