Skip to content
IamFaizanKhalidPublic

About

A simple library for AWS S3 in golang.

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

gos3 Build Status Go Report Card License

Using S3 made easier. Use S3 as you use your local file system with this simple wrapper over github.com/aws/aws-sdk-go.

Includes

  • Uploading a file
  • Downloading a file
  • Deleting a file
  • Getting a pre-signed link to the file

Example

package main

import (
    "github.com/IamFaizanKhalid/gos3"
    "io/ioutil"
    "log"
    "os"
    "time"
)

func main() {
    // Getting client
    client, err := gos3.NewClient(&gos3.Config{
        Endpoint:        "http://localhost:4566",
        Region:          "us-east-1",
        AccessKeyId:     "test",
        SecretAccessKey: "test",
    })
    if err != nil {
        log.Panicln(err)
    }

    // Select a bucket    
    bucket, err := client.SelectBucket("test-bucket")
    if err != nil {
        log.Panicln(err)
    }

    // Upload a file
    file, err := os.Open("README.md")
    if err != nil {
        log.Panicln(err)
    }

    err = bucket.Upload(file, file.Name(), "backup")
    if err != nil {
        log.Panicln(err)
    }

    // Download a file
    b, _, err := bucket.Download("backup/README.md")
    if err != nil {
        log.Panicln(err)
    }

    err = ioutil.WriteFile("README.md", b, os.ModePerm)
    if err != nil {
        log.Panicln(err)
    }

    // Get pre-signed link to the file
    link, err := bucket.GetPreSignedLink("backup/README.md", time.Hour)
    if err != nil {
        log.Panicln(err)
    }

    log.Printf("Pre-signed link: %s\n", link)

    // Delete the file
    err = bucket.Delete("backup/README.md")
    if err != nil {
        log.Panicln(err)
    }
}

About

A simple library for AWS S3 in golang.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages