当前位置: 首页 > wzjs >正文

农化网站建设敦化建设局网站

农化网站建设,敦化建设局网站,wordpress小蜜蜂插件,工程建设网最新信息网站MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务,与 Amazon S3 云存储服务兼容,适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器 / 虚拟机镜像等。在 Go 语言中,可以使用 MinIO 官方提供…

MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务,与 Amazon S3 云存储服务兼容,适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器 / 虚拟机镜像等。在 Go 语言中,可以使用 MinIO 官方提供的 Go 客户端库与 MinIO 服务进行交互。以下是关于在 Go 语言中使用 MinIO 的详细代码如下介绍:

package minioimport ("bytes""context""fmt""github.com/minio/minio-go/v7""github.com/minio/minio-go/v7/pkg/credentials""io""log""net/url""os""path""time"
)type Minio struct {client     *minio.Client // 连接对象bucketName string // 桶名称
}// NewMinio ...
// endpoint 连接地址;accessKey 访问key;secret 访问密钥;bucketName 桶名称
func NewMinio(endpoint, accessKey, secret, bucketName string) Minio {// Initialize minio client object.minioClient, err := minio.New(endpoint, &minio.Options{Creds:  credentials.NewStaticV4(accessKey, secret, ""),Secure: false,})if err != nil {log.Fatal("文件服务连接失败;err=", err)}return Minio{client: minioClient,//logger:     logger,bucketName: bucketName,}
}// CreateBucket 创建桶
func (m Minio) CreateBucket(ctx context.Context) error {err := m.client.MakeBucket(ctx, m.bucketName, minio.MakeBucketOptions{Region: "cn-north-1"})if err != nil {// 检查存储桶是否已存在,若已存在导致的错误则忽略if exists, errExists := m.BucketExists(ctx, m.bucketName); errExists == nil && exists {return nil}return fmt.Errorf("创建存储桶失败: %v", err)}//m.logger.Info("存储桶 %s 创建成功\n", m.bucketName)return nil
}// ListBuckets 查询桶列表
func (m Minio) ListBuckets(ctx context.Context) ([]minio.BucketInfo, error) {buckets, err := m.client.ListBuckets(ctx)if err != nil {return nil, err}return buckets, nil
}// BucketExists 检查桶是否存在
func (m Minio) BucketExists(ctx context.Context, bucketName string) (bool, error) {found, err := m.client.BucketExists(ctx, bucketName)if err != nil {fmt.Println(err)return false, err}return found, nil
}// RemoveBucket 删除桶
func (m Minio) RemoveBucket(ctx context.Context) error {isExist, err := m.BucketExists(ctx, m.bucketName)if err != nil {fmt.Printf("Check %s err:%s", m.bucketName, err.Error())return err}if isExist {fmt.Printf("%s exists! Start delete....\n", m.bucketName)// 删除if err = m.client.RemoveBucket(ctx, m.bucketName); err != nil {fmt.Printf("Fail to remove %s:%s\n", m.bucketName, err.Error())return err}fmt.Printf("Success to remove %s\n", m.bucketName)} else {fmt.Printf("%s not exists!\n", m.bucketName)}return nil
}// UploadObject 上传文件对象
func (m Minio) UploadObject(ctx context.Context, objectName string, file *os.File) (*minio.UploadInfo, error) {fileStat, err := file.Stat()if err != nil {return nil, err}fileType := "application/octet-stream"switch path.Ext(objectName) {case ".jpg", ".jpeg":fileType = "image/jpeg"case ".png":fileType = "image/png"case ".gif":fileType = "image/gif"case ".webp":fileType = "image/webp"case ".mp4":fileType = "video/mp4"case ".avi":fileType = "video/avi"case ".pdf":fileType = "application/pdf"case ".doc":fileType = "application/msword"}// upload the fileuploadInfo, err := m.client.PutObject(ctx,m.bucketName,objectName,file,fileStat.Size(),minio.PutObjectOptions{ContentType: fileType})return &uploadInfo, err
}// ReadObject 获取文件对象
func (m Minio) ReadObject(ctx context.Context, objectName string) ([]byte, error) {contentBuffer, err := m.client.GetObject(ctx, m.bucketName, objectName, minio.GetObjectOptions{})if err != nil {return nil, err}// read the content from the buffercontentBytes := new(bytes.Buffer)if _, err = io.Copy(contentBytes, contentBuffer); err != nil {return nil, err}return contentBytes.Bytes(), nil
}// StateObjects 查询文件信息
func (m Minio) StateObjects(ctx context.Context, objectName string) (*minio.ObjectInfo, error) {objInfo, err := m.client.StatObject(ctx, m.bucketName, objectName, minio.StatObjectOptions{})if err != nil {return nil, err}return &objInfo, err
}// PresignedGetObject 创建预览地址
func (m Minio) PresignedGetObject(ctx context.Context, objectName string) (*url.URL, error) {reqParams := make(url.Values)// 若需要生成的链接直接下载文件的把下面的注释打开,需要预览的则不需要打开//reqParams.Set("response-content-disposition", "attachment; filename="+path.Base(objectName))// Generates a presigned url which expires in a day.presignedURL, err := m.client.PresignedGetObject(ctx, m.bucketName, objectName, time.Second*24*60*60, reqParams)if err != nil {return nil, err}return presignedURL, err
}// RemoveObject 删除文件对象
func (m Minio) RemoveObject(ctx context.Context, objectName string) error {opts := minio.RemoveObjectOptions{}err := m.client.RemoveObject(ctx, m.bucketName, objectName, opts)if err != nil {fmt.Println(err)return err}return nil
}

官网API地址MinIO Go Client API Reference — MinIO中文文档 | MinIO Linux中文文档


文章转载自:

http://gwtG8QzK.dtrzw.cn
http://DJW9UBJl.dtrzw.cn
http://ntoGLW6a.dtrzw.cn
http://AZJJFsLf.dtrzw.cn
http://BATyNEYr.dtrzw.cn
http://gzrMKuD5.dtrzw.cn
http://t4P12nZ5.dtrzw.cn
http://Yce7ZWjR.dtrzw.cn
http://RIRbn2V3.dtrzw.cn
http://AtoMbq7X.dtrzw.cn
http://ar2E1rHf.dtrzw.cn
http://p1E1qzxl.dtrzw.cn
http://beQF9ngS.dtrzw.cn
http://eyzfQcAl.dtrzw.cn
http://EaLrlXEB.dtrzw.cn
http://tmKJBBz8.dtrzw.cn
http://lyvsId2G.dtrzw.cn
http://zDN8RXPD.dtrzw.cn
http://DE55LtsQ.dtrzw.cn
http://xP2qWt3O.dtrzw.cn
http://fXcKh6vG.dtrzw.cn
http://cMI6dmZT.dtrzw.cn
http://JCsd1kd0.dtrzw.cn
http://fydCx732.dtrzw.cn
http://5ZD4Ssa1.dtrzw.cn
http://Zw7xT8AL.dtrzw.cn
http://RwdGmXPx.dtrzw.cn
http://UdZyTqP6.dtrzw.cn
http://CPafgr2C.dtrzw.cn
http://OiZHOa2l.dtrzw.cn
http://www.dtcms.com/wzjs/741336.html

相关文章:

  • 做网站如何调字体格式枫树seo
  • 网站seo外包公司有哪些大学专业分类目录
  • 做外单网站有哪些公司如何搭建平台
  • 免费app制作网站建筑网课推荐
  • 站长工具seo综合网站怎么做伪静态页面
  • 网站开发课程有哪些电子商务有哪些工作岗位
  • 沙坪坝网站建设公司选哪家好电子商务网站建设答案
  • 网站备案 广东网站建设费属于哪个税种
  • 开源网站开发文档下载装修公司前十强排名榜
  • 网站外链分析工具网站跳出率怎么算
  • 商城网站建设哪家便宜游戏建模培训
  • 新站整站优化网站会员系统功能
  • 站嗨免费建站河北建筑培训网官网
  • 网站建设一般用什么语言好聊城高唐网站建设公司
  • 自助式网站建设 济南织梦模板国外网站
  • 淮安网站建设推广wordpress支付看文章
  • 西峡做网站企业网站用什么开发好-商业推广
  • 米思米网站订单取消怎么做wordpress站点网站地图
  • 模板式网站网络营销方式有哪几种
  • 对网站建设展望程序员培训机构排名
  • 网站建设与运营的预算方案佛山网站商城建设
  • 一级做爰片a视频网站4如何制作自己的微信小程序
  • 湖南省住建厅官网信息公开seo代做
  • 网站配色与布局wordpress畅言
  • 济南网站设计公司排名wordpress 无法上传
  • 代做施组 方案的网站南宁app开发
  • 有什么做酒和水果茶教程的网站四川和住房城乡建设厅网站首页
  • 驻马店做网站的公司西安房产信息网官网
  • 企业网站推广是不是必要的做棋盘游戏辅助的网站
  • 什么网站可以发布广告wordpress静态化链接