25% off

Use code FUNCMAIN at checkout for 25% off all premium courses.

Get started →

Deleting Items from S3

March 19, 2018
Elliot Forbes

Elliot Forbes

Course Instructor

Hey Gophers! My name is Elliot and I'm the creator of TutorialEdge and I've been working with Go systems for roughly 5 years now.

In this video, we are going to be looking at how we can implement a deleteItem function which will allow us to delete items from our S3 bucket and clean up after ourselves:

Deleting Items

Let’s set about implementing this deleteItem function now:

func deleteItem(sess *session.Session) {
	svc := s3.New(sess)
	input := &s3.DeleteObjectInput{
		Bucket: aws.String("go-aws-s3-course"),
		Key:    aws.String("my-file.txt"),
	}

	result, err := svc.DeleteObject(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			default:
				log.Fatal(aerr.Error())
			}
		} else {
			log.Fatal(err.Error())
		}
	}

	log.Printf("Result: %+v\n", result)

}

Let’s also update our main func:

func main() {
	fmt.Println("Downloads and Uploads")
	sess, err := session.NewSession(&aws.Config{
		Region: aws.String("us-west-2"),
	})
	if err != nil {
		log.Fatal("Could not get session")
	}
	uploadItem(sess)
	listItems(sess)

	deleteItem(sess)
	listItems(sess)
}

Perfect, with this in place, let’s try and run this and see if it deletes our file:

$ go run 04-deleting-items/main.go 
Downloads and Uploads
2021/03/14 12:52:00 Upload Result: &{Location:https://go-aws-s3-course.s3.us-west-2.amazonaws.com/my-file.txt VersionID:<nil> UploadID: ETag:0xc00047a240}
2021/03/14 12:52:00 Name: my-file.txt
2021/03/14 12:52:00 Size: 12
2021/03/14 12:52:00 Result: {

}