Skip to content

Instantly share code, notes, and snippets.

@harshavardhana
Forked from Rauk/gist:457be89a59c33220ab30
Last active March 18, 2016 18:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save harshavardhana/bc4cc8a5bce26d06b382 to your computer and use it in GitHub Desktop.
Save harshavardhana/bc4cc8a5bce26d06b382 to your computer and use it in GitHub Desktop.
Delete All the objects in the bucket
package main
import (
"log"
"github.com/minio/minio-go"
"fmt"
)
func main() {
accessKey := "accessKey"
secretKey := "secretKey"
url := "url"
myBucket := "minio-bucket1"
s3Client, err := minio.NewV2(url, accessKey, secretKey, true)
if err != nil {
log.Fatalln(err)
}
// Create a done channel to control 'ListObjects' go routine.
doneCh := make(chan struct{})
// Indicate to our routine to exit cleanly upon return.
defer close(doneCh)
var arr []minio.ObjectInfo
// List all objects from a bucket-name with a matching prefix.
for object := range s3Client.ListObjects(myBucket, "", false, doneCh) {
if object.Err != nil {
fmt.Println(object.Err)
return
}
arr = append(arr, object)
}
var wg sync.WaitGroup
for index := range arr {
wg.Add(1)
go func(index int) {
defer wg.Done()
err = s3Client.RemoveObject(myBucket, arr[index].Key)
if err != nil {
log.Fatalln(err)
}
log.Println("Success", arr[index].Key)
} (index)
}
wg.Wait()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment