minio API demo
package main
import (
"context"
"fmt"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
"log"
)
func main() {
endpoint := "127.0.0.1:9000"
accessKeyID := "minioadmin"
secretAccessKey := "minioadmin"
useSSL := false
ctx := context.Background()
// Initialize minio client object.
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKeyID, secretAccessKey, ""),
Secure: useSSL,
})
if err != nil {
log.Fatalln(err)
}
//log.Printf("%#v\n", minioClient) // minioClient is now setup
//// Create a bucket at region 'us-east-1' with object locking enabled.
//err = minioClient.MakeBucket(ctx, "gwx",minio.MakeBucketOptions{})
//if err != nil {
// fmt.Println("******************",err)
// return
//}
//fmt.Println("Successfully created mybucket.")
//buckets, err := minioClient.ListBuckets(ctx)
//if err != nil {
// fmt.Println(err)
// return
//}
//for _, bucket := range buckets {
// fmt.Println(bucket)
//}
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
objectCh := minioClient.ListObjects(ctx, "test", minio.ListObjectsOptions{
Prefix: "",
Recursive: true,
})
var totalSize int64
for object := range objectCh {
if object.Err != nil {
fmt.Println(object.Err)
return
}
totalSize += object.Size
fmt.Println(object,"******",object.Size,totalSize,object.LastModified)
}
//err = minioClient.RemoveBucket(context.Background(), "gwx")
//if err != nil {
// fmt.Println(err)
// return
//}
objectsCh := make(chan minio.ObjectInfo)
// Send object names that are needed to be removed to objectsCh
go func() {
defer close(objectsCh)
// List all objects from a bucket-name with a matching prefix.
for object := range minioClient.ListObjects(ctx, "test", minio.ListObjectsOptions{
Prefix: "对象数据集/模拟-考试题",
Recursive: true,
}) {
if object.Err != nil {
log.Fatalln(object.Err)
}
fmt.Println(object)
objectsCh <- object
}
}()
opts := minio.RemoveObjectsOptions{
GovernanceBypass: true,
}
for rErr := range minioClient.RemoveObjects(context.Background(), "test", objectsCh, opts) {
fmt.Println("Error detected during deletion: ", rErr)
}
//file, err := os.Open("D:\\huawei-oj\\test\\work\\main.go.bk")
//if err != nil {
// fmt.Println(err)
// return
//}
//defer file.Close()
//
//fileStat, err := file.Stat()
//if err != nil {
// fmt.Println(err)
// return
//}
//
//n, err := minioClient.PutObject(ctx, "test", "对象数据集/test.txt", file, fileStat.Size(), minio.PutObjectOptions{ContentType:"application/octet-stream"})
//if err != nil {
// fmt.Println(err)
// return
//}
//fmt.Println("Successfully uploaded bytes: ", n)
//objInfo, err := minioClient.StatObject(ctx,"test", "test.txt", minio.StatObjectOptions{})
//if err != nil {
// fmt.Println(err)
// return
//}
//fmt.Println(objInfo)
//object, err := minioClient.GetObject(ctx,"test", "test.txt", minio.GetObjectOptions{})
//if err != nil {
// fmt.Println(err)
// return
//}
//buf := make([]byte,1024,1024)
//object.Read(buf)
//
//fmt.Println(object.Read(buf))
//func get(w http.ResponseWriter, r *http.Request) {
// // 收到 接口服务器的 请求
// // 提取 要获取的文件名
// name := strings.Split(r.URL.EscapedPath(), "/")[2]
// f, e := os.Open(objectDir + name)
// if e != nil {
// log.Println(e)
// w.WriteHeader(http.StatusNotFound)
// return
// }
// defer f.Close()
// // 真正读取,并发送
// io.Copy(w, f)
//}
//localFile, err := os.Create("/tmp/test.txt")
//if err != nil {
// fmt.Println(err)
// return
//}
//if _, err = io.Copy(localFile, object); err != nil {
// fmt.Println(err)
// return
//}
//opts := minio.RemoveObjectOptions{
//}
//
//err = minioClient.RemoveObject(ctx,"test","对象数据集",opts)
//if err != nil {
// fmt.Println("********", err)
// return
//}
//
//fmt.Println("********", err)
}
minio API demo的更多相关文章
- Kafka2.4发布——新特性介绍(附Java Api Demo代码)
新功能 允许消费者从最近的副本进行获取 为 Consumer Rebalance Protocol 增加对增量协同重新均衡(incremental cooperative rebalancing)的支 ...
- microwindows Win32 API demo
初次使用microwindows,资料有限,我也是费了很多功夫才明白.所以记录下来,好帮助那些爱学习的童鞋,另外请大虾们多多指教. 什么是microwindows,什么作用,等背景介绍我就不多说了,因 ...
- Azure Storage Rest API Demo
本文主要介绍如何使用C#基于Rest API 操作中国版Microsoft Azure Storage,涉及方法Put Blob.Get Blob以及Delete Blob,其它方法参考上面三种方法适 ...
- 使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(二)-- Web Api Demo
在上一篇里,我已经建立了一个简单的Web-Demo应用程序.这一篇将记录将此Demo程序改造成一个Web Api应用程序. 一.添加ASP.NET Core MVC包 1. 在project.json ...
- Google maps api demo
demo: <!DOCTYPE html> <html> <head> <meta name="viewport" content=&qu ...
- ASP版_阿里大于短信API Demo
阿里大于申请地址:http://www.alidayu.com 阿里大于短信发送Demo: ******index.asp************* <%@LANGUAGE="VBSC ...
- javascript 百度地图API - demo
<!DOCTYPE html> <html> <head> <meta name="viewport" content="ini ...
- Google maps api demo 2
demo /** * @fileoverview Sample showing capturing a KML file click * and displaying the contents in ...
- Java Date API demo
package date; import java.text.DateFormat; import java.util.Calendar; import java.util.Date; /*2015- ...
- SoundManager 2 / API Demo and Code Examples
http://www.schillmania.com/projects/soundmanager2/
随机推荐
- Python入门系列(八)日期时间、数学、json
日期时间 Python中的日期本身不是数据类型,但我们可以导入一个名为datetime的模块,将日期作为日期对象使用. import datetime x = datetime.datetime.no ...
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(三)
案例三:测试'recovery = manual' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | Role ...
- KingbaseES 自增列三种方式
KingbaseES中3种自增长类型sequence,serial,identity的区别: 对象 显示插入 显示插入后更新最大值 清空表后是否重置 是否跟事务一起回滚 多对象共享 支持重置 出现错误 ...
- 利用京东云Web应用防火墙实现Web入侵防护
摘 要 本指南描述如何利用京东云Web应用防火墙(简称WAF),对一个简单的网站(无论运行在京东云.其它公有云或者IDC)进行Web完全防护的全过程.该指南包括如下内容: 1 准备环境 1.1 在京东 ...
- Call to undefined function think\captcha\imagettftext()
sudo apt install libjpeg62-turbo-dev libfreetype6-dev -y su -c "docker-php-ext-configure gd --e ...
- 面向制造企业普适性ERP、MES类产品为什么那么难找?
标准化与个性化之间的矛盾怎么可能通过普适性的ERP.MES系统来解决?为什么难?就跟你找一套适合所有人穿的衣服一样难,事实上这个比找衣服更难!人与人之间高矮胖瘦各不相同.肤色体型各有差异,把同一套衣服 ...
- 使用EF Core更新与修改生产数据库
使用EF Core的Code First,在设计阶段,直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除.更新最新的数据结构.由于没有什么数据,删除的 ...
- day08-MySQL事务
MySQL事务 先来看一个例子 有一张balance表: 需求:将tom的100块钱转到King账户中 执行的操作是: update balance set money = money -100 wh ...
- Vue 中为什么要有nextTick?
摘要:本文将浅析nextTick的作用.使用场景和背后的原理实现,希望对大家有所帮助. 本文分享自华为云社区<Vue 中的 nextTick 有什么作用?>,作者:CoderBin. 一. ...
- 在mybatis中#{}和${}的区别
文章目录 1.第一个#{} 2.第二个${} 3.区别 1.第一个#{} 解释: 使用#{}格式的语法在mybatis中使用preparement语句来安全的设置值 PreparedStatement ...