All Projects → rhnvrm → Simples3

rhnvrm / Simples3

Licence: other
Simple no frills AWS S3 Golang Library using REST with V4 Signing (without AWS Go SDK)

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Simples3

S3 Sync Action
🔄 GitHub Action to sync a directory with a remote S3 bucket 🧺
Stars: ✭ 497 (+874.51%)
Mutual labels:  aws, aws-s3
Amplify Js
A declarative JavaScript library for application development using cloud services.
Stars: ✭ 8,539 (+16643.14%)
Mutual labels:  aws, aws-s3
Aws Cognito Angular Quickstart
An Angular(v5)-based QuickStart single-page app utilizing Amazon Cognito, S3, and DynamoDB (Serverless architecture)
Stars: ✭ 685 (+1243.14%)
Mutual labels:  aws, aws-s3
Security monkey
Security Monkey monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
Stars: ✭ 4,244 (+8221.57%)
Mutual labels:  aws, aws-s3
Django S3 Like Storage
Your Own Amazon S3 Django Storage
Stars: ✭ 28 (-45.1%)
Mutual labels:  aws, aws-s3
Udacity Data Engineering Projects
Few projects related to Data Engineering including Data Modeling, Infrastructure setup on cloud, Data Warehousing and Data Lake development.
Stars: ✭ 458 (+798.04%)
Mutual labels:  aws, aws-s3
S3 Permission Checker
Check read, write permissions on S3 buckets in your account
Stars: ✭ 18 (-64.71%)
Mutual labels:  aws, aws-s3
S3mock
A simple mock implementation of the AWS S3 API startable as Docker image, JUnit 4 rule, or JUnit Jupiter extension
Stars: ✭ 332 (+550.98%)
Mutual labels:  aws, aws-s3
Awslib scala
An idiomatic Scala wrapper around the AWS Java SDK
Stars: ✭ 20 (-60.78%)
Mutual labels:  aws, aws-s3
Touchdown
Cloud service orchestration framework for python
Stars: ✭ 10 (-80.39%)
Mutual labels:  aws, aws-s3
Aws S3 Virusscan
Antivirus for Amazon S3 buckets
Stars: ✭ 400 (+684.31%)
Mutual labels:  aws, aws-s3
Aws S3 Scala
Scala client for Amazon S3
Stars: ✭ 35 (-31.37%)
Mutual labels:  aws, aws-s3
Storage
💿 Storage abstractions with implementations for .NET/.NET Standard
Stars: ✭ 380 (+645.1%)
Mutual labels:  aws, aws-s3
Discharge
⚡️ A simple, easy way to deploy static websites to Amazon S3.
Stars: ✭ 483 (+847.06%)
Mutual labels:  aws, aws-s3
Serverless Photo Recognition
A collection of 3 lambda functions that are invoked by Amazon S3 or Amazon API Gateway to analyze uploaded images with Amazon Rekognition and save picture labels to ElasticSearch (written in Kotlin)
Stars: ✭ 345 (+576.47%)
Mutual labels:  aws, aws-s3
Rome
Carthage cache for S3, Minio, Ceph, Google Storage, Artifactory and many others
Stars: ✭ 724 (+1319.61%)
Mutual labels:  aws, aws-s3
Spark Jupyter Aws
A guide on how to set up Jupyter with Pyspark painlessly on AWS EC2 clusters, with S3 I/O support
Stars: ✭ 259 (+407.84%)
Mutual labels:  aws, aws-s3
Aws.s3
Amazon Simple Storage Service (S3) API Client
Stars: ✭ 302 (+492.16%)
Mutual labels:  aws, aws-s3
Jekyll Paspagon
Sell your Jekyll blog posts in various formats for cryptocurrencies.
Stars: ✭ 8 (-84.31%)
Mutual labels:  aws, aws-s3
Gocd S3 Artifacts
Set of GoCD plugins to publish and fetch artifacts from Amazon S3
Stars: ✭ 35 (-31.37%)
Mutual labels:  aws, aws-s3

simples3 : Simple no frills AWS S3 Library using REST with V4 Signing

Overview GoDoc Go Report Card GoCover Zerodha Tech

SimpleS3 is a golang library for uploading and deleting objects on S3 buckets using REST API calls or Presigned URLs signed using AWS Signature Version 4.

Install

go get github.com/rhnvrm/simples3

Example

testTxt, _ := os.Open("testdata/test.txt")
defer testTxt.Close()

// Create an instance of the package
// You can either create by manually supplying credentials
// (preferably using Environment vars)
s3 := simples3.New(Region, AWSAccessKey, AWSSecretKey)
// or you can use this on an EC2 instance to 
// obtain credentials from IAM attached to the instance.
s3, _ := simples3.NewUsingIAM(Region)

// You can also set a custom endpoint to a compatible s3 instance. 
s3.SetEndpoint(CustomEndpoint)

// Note: Consider adding a testTxt.Seek(0, 0)
// in case you have read 
// the body, as the pointer is shared by the library.

// File Upload is as simple as providing the following
// details.
resp, err := s3.FileUpload(simples3.UploadInput{
    Bucket:      AWSBucket,
    ObjectKey:   "test.txt",
    ContentType: "text/plain",
    FileName:    "test.txt",
    Body:        testTxt,
})

// Similarly, Files can be deleted.
err := s3.FileDelete(simples3.DeleteInput{
    Bucket:    os.Getenv("AWS_S3_BUCKET"),
    ObjectKey: "test.txt",
})

// You can also download the file.
file, _ := s3.FileDownload(simples3.DownloadInput{
    Bucket:    AWSBucket,
    ObjectKey: "test.txt",
})
data, _ := ioutil.ReadAll(file)
file.Close()

// You can also use this library to generate
// Presigned URLs that can for eg. be used to
// GET/PUT files on S3 through the browser.
var time, _ = time.Parse(time.RFC1123, "Fri, 24 May 2013 00:00:00 GMT")

url := s.GeneratePresignedURL(PresignedInput{
    Bucket:        AWSBucket,
    ObjectKey:     "test.txt",
    Method:        "GET",
    Timestamp:     time,
    ExpirySeconds: 86400,
})

Contributing

You are more than welcome to contribute to this project. Fork and make a Pull Request, or create an Issue if you see any problem or want to propose a feature.

Author

Rohan Verma [email protected]

License

BSD-2-Clause-FreeBSD

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].