1 year ago

#76342

test-img

Ibjas Mohamed

How to save S3 file to AWS lambda tmp directory and how to delete a file from AWS lambda tmp directory using golang

Need to download a file from s3 bucket and store in to tmp directory in lambda function. After that need apply grep command into file using "os/exec". I tried to do this algorithm using golang.

I tried through following way but it is not successful approach.

func MyHandler(ctx context.Context, s3Event events.S3Event) {
    for _, record := range s3Event.Records {
            s3record := record.S3

            bucketName := s3record.Bucket.Name
            fileName := s3record.Object.Key
            download_path := "/tmp/"

            file, err := os.Create(download_path + fileName)
            if err != nil {
                fmt.Println(err)
            }
            defer file.Close()

            sess, _ := session.NewSession(&aws.Config{Region: aws.String("us-east-1")})
            downloader := s3manager.NewDownloader(sess)
            numBytes, err := downloader.Download(file,
                &s3.GetObjectInput{
                    Bucket: aws.String(bucketName),
                    Key:    aws.String(fileName),
                })
            if err != nil {
                fmt.Println(err)
            }
            fmt.Println("Downloaded", file.Name(), numBytes, "bytes")
    }
}

Please verify may approach correct or suggest a correct approach to store the file from s3 bucket into tem folder of lambda function everything I need to do using golang.

I have following confusion also

  1. Do we need to create directory folder in lambda function or it is a default directory already there.
  2. Can we apply os/exec command into tem folder and can we grep the file.
  3. Do we need to delete uploaded file from tem folder then How? or The file will be deleted a automatically.

amazon-web-services

go

aws-lambda

serverless

0 Answers

Your Answer

Accepted video resources