Skip to content

Instantly share code, notes, and snippets.

@jeffotoni
Created March 2, 2017 18:33
Show Gist options
  • Save jeffotoni/3aaac690bc418e0a3d837a1de292c8f7 to your computer and use it in GitHub Desktop.
Save jeffotoni/3aaac690bc418e0a3d837a1de292c8f7 to your computer and use it in GitHub Desktop.
/**
..######......#######.....##......##....########
.##....##....##.....##....##..##..##....##......
.##.................##....##..##..##....##......
..######......#######.....##..##..##....######..
.......##...........##....##..##..##....##......
.##....##....##.....##....##..##..##....##......
..######......#######......###..###.....##......
*
* S3WF Framework
*
* Framework desenvolvido pela S3WF
*
* @package S3WFHTML
* @author @jeffotoni
* @copyright Copyright (c) 2007 - 2017
* @license http://s3wf.com.br/
* @link http://s3wf.com.br
* @since Version 1.0
* @filesource
*/
// ---------------------------------------------------------------------
//
package main
import (
"fmt"
"log"
"os"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3/s3manager"
)
const MinUploadPartSize int64 = 1024 * 1024 * 5
const DefaultUploadConcurrency = 5
const DefaultUploadPartSize = MinUploadPartSize
func main() {
bucketName := "nomeBucket"
keyName := "musica/file.avi" //nome diretorio + file
regiao := "us-east-1"
nomeFile := "fileLarge2.avi"
file, err := os.Open(nomeFile)
if err != nil {
log.Fatalln(err)
}
defer file.Close()
config := &aws.Config{
Region: aws.String(regiao),
}
sess := session.New(config)
uploader := s3manager.NewUploader(sess)
fmt.Println("Iniciando Upload...")
paramUp := &s3manager.UploadInput{
Bucket: &bucketName,
Key: &keyName,
Body: file,
}
// Perform an upload.
result, err := uploader.Upload(paramUp, func(u *s3manager.Uploader) {
u.PartSize = 10 * 1024 * 1024 // 10MB part size
u.LeavePartsOnError = true // Don't delete the parts if the upload fails.
fmt.Println("ok")
})
if err != nil {
if multierr, ok := err.(s3manager.MultiUploadFailure); ok {
// Process error and its associated uploadID
fmt.Println("Error multier:", multierr.Code(), multierr.Message(), multierr.UploadID())
} else {
// Process error generically
fmt.Println("Error generico :", err.Error())
}
}
log.Println(result)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment