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/
随机推荐
- Html飞机大战(三):定义状态
好家伙, 1.为飞机大战定义状态 1.开始 START 有一个飞机大战LOGO &天空 2.开始时 STRATING 有一个飞机加载的界面&天空 3.运行时 RUNNING 我方飞机& ...
- Hbase shell 操作记录
查看hbase版本 hbase(main):002:0> version 2.1.0-cdh6.2.0, rUnknown, Wed Mar 13 23:39:58 PDT 2019 Took ...
- DFS算法-求集合的所有子集
目录 1. 题目来源 2. 普通方法 1. 思路 2. 代码 3. 运行结果 3. DFS算法 1. 概念 2. 解题思路 3. 代码 4. 运行结果 4. 对比 1. 题目来源 牛客网,集合的所有子 ...
- 容器化|自建 MySQL 集群迁移到 Kubernetes
背景 如果你有自建的 MySQL 集群,并且已经感受到了云原生的春风拂面,想将数据迁移到 Kubernetes 上,那么这篇文章可以给你一些思路. 文中将自建 MySQL 集群数据,在线迁移到 Kub ...
- 防火墙:iptable和firewalld常用操作
iptables //安装iptables-service yum install iptables-services //编辑config文件 vi /etc/sysconfig/iptables ...
- K8s deployments的故障排查可视化指南已更新(2021 中文版)
转载自:https://mp.weixin.qq.com/s/07S930e6vsN2iToo0gP0zg 英文版 高清图地址:https://learnk8s.io/a/a-visual-guide ...
- kubernetes 查看pod 的容器日志
1.pod若处于运行状态,则通过kubectl logs 即可 # 查看指定pod的日志 kubectl logs <pod_name> kubectl logs -f <pod_n ...
- python-函数-统计函数
#(1)amax(),amin() 作用:计算数组中的元素沿指定轴的最大值,最小值 import numpy as np x = np.random.randint(1,11,9).reshape(( ...
- FEX-EMU Wine踩坑记录
FEX是一个用于在ARM64平台运行X86软件的工具,比较成熟,但是网上资料很少,所以就写了这篇FEX运行Wine踩坑记录. Termux的Fex不能用(2022年5月) 要在debian系统安装fe ...
- Spring笔记四
Spring-04 1.Spring整合Junit ①导入依赖 <!-- junit --> <dependency> <groupId>junit</gro ...