--- /dev/null
+package core
+
+import (
+ "fmt"
+ "io"
+ "os"
+
+ "github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/service/s3"
+)
+
+type S3_manager struct {
+ //Have aws properties, so that they are accessible
+ //to all the function of this file
+}
+
+func (s3manager *S3_manager) getBucketObject(client *s3.S3, objectName string, bucketName string) {
+
+ getInputs := &s3.GetObjectInput{
+ Bucket: aws.String(bucketName),
+ Key: aws.String(objectName),
+ }
+ result, err := client.GetObject(getInputs)
+ defer result.Body.Close()
+
+ if err != nil {
+ fmt.Println("Error, can't get fetch object..")
+ return
+ } else {
+ fmt.Println("Successfully retrieved object...")
+ fmt.Println(result)
+ }
+
+ outputFile, error := os.Create(bucketName + ".zip")
+ if error != nil {
+ fmt.Println("Could not temp local file ")
+ return
+ }
+ defer outputFile.Close()
+ _, wrerr := io.Copy(outputFile, result.Body)
+
+ if wrerr != nil {
+ fmt.Println("Failed to write bucket object in to a localfile")
+ } else {
+ fmt.Println("Successfully, written bucket object to localfile")
+ }
+ //The file will be responded in getModel rest api
+}
+
+func (s3manager *S3_manager) deleteBucket(client *s3.S3, objectName string, bucketName string) {
+ success := s3manager.deleteBucketObject(client, objectName, bucketName)
+ if success {
+ deleteBucketInput := &s3.DeleteBucketInput{
+ Bucket: aws.String(bucketName),
+ }
+ client.DeleteBucket(deleteBucketInput)
+ fmt.Println("Bucket deleted successfully..")
+ } else {
+ fmt.Println("Failed to delete the Bucket ...")
+ }
+
+}
+
+func (s3manager *S3_manager) deleteBucketObject(client *s3.S3, objectName string, bucketName string) bool {
+ deleteInput := &s3.DeleteObjectInput{
+ Bucket: aws.String(bucketName),
+ Key: aws.String(objectName),
+ }
+ _, err := client.DeleteObject(deleteInput)
+ if err != nil {
+ fmt.Println("Can not delete the bucket object")
+ return false
+ }
+ fmt.Println("Object deleted successfully..")
+ return true
+}
+
+func (s3manager *S3_manager) uploadFile(client *s3.S3, fileName string, bucketName string) {
+
+ file, err := os.Open(fileName)
+ if err != nil {
+ fmt.Println("Error is opening the file..")
+ }
+ defer file.Close()
+
+ params := &s3.PutObjectInput{
+ Bucket: aws.String(bucketName),
+ Key: aws.String(fileName),
+ Body: file,
+ }
+
+ _, err = client.PutObject(params)
+ if err != nil {
+ fmt.Printf("Error in uploading file to bucket ", err)
+ }
+ fmt.Printf("File uploaded to bucket ")
+}
+
+func (s3manager *S3_manager) listBucket(client *s3.S3) {
+ input := &s3.ListBucketsInput{}
+ result, err := client.ListBuckets(input)
+ if err != nil {
+ fmt.Println(err.Error())
+ }
+ fmt.Println(result)
+}
+
+// Return list of objects in the buckets
+func getBucketItems(bucketName string) {
+
+}
+
+func (s3manager *S3_manager) createBucket(client *s3.S3, bucketName string) {
+ _, err := client.CreateBucket(&s3.CreateBucketInput{Bucket: aws.String(bucketName)})
+ if err != nil {
+ panic(err)
+ }
+ println("Bucket created: ", bucketName)
+}
--- /dev/null
+github.com/aws/aws-sdk-go v1.47.3 h1:e0H6NFXiniCpR8Lu3lTphVdRaeRCDLAeRyTHd1tJSd8=
+github.com/aws/aws-sdk-go v1.47.3/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
+github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
+github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
+github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
+github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
+golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
+golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
+golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
+gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=