what name from amazon-s3 go

amazon s3 - name - Ir a conectarse a S3



s3 metadata (2)

Trabajando en aprender Go, y estoy escribiendo un componente para administrar imágenes.

He estado buscando en la biblioteca s3 aquí: https://godoc.org/launchpad.net/goamz/s3#ACL

En Node, uso el cliente de Knox y me conecto a mi cubo de esta manera:

var bucket = knox.createClient({ key: config.get(''AWS_KEY''), secret: config.get(''AWS_SECRET''), bucket: "bucketName" });

En la biblioteca Go s3 veo todas las funciones que necesito para trabajar con el cubo s3, pero no puedo encontrar la función de conexión, similar a la anterior.

Hasta ahora, he encontrado esto en los Documentos:

type Auth struct { AccessKey, SecretKey string }

Y parece que necesito llamar a esta función:

func EnvAuth() (auth Auth, err error)

Esta es la función EnvAuth:

func EnvAuth() (auth Auth, err error) { auth.AccessKey = os.Getenv("AWS_ACCESS_KEY_ID") auth.SecretKey = os.Getenv("AWS_SECRET_ACCESS_KEY") // We fallback to EC2_ env variables if the AWS_ variants are not used. if auth.AccessKey == "" && auth.SecretKey == "" { auth.AccessKey = os.Getenv("EC2_ACCESS_KEY") auth.SecretKey = os.Getenv("EC2_SECRET_KEY") } if auth.AccessKey == "" { err = errors.New("AWS_ACCESS_KEY_ID not found in environment") } if auth.SecretKey == "" { err = errors.New("AWS_SECRET_ACCESS_KEY not found in environment") } return }

En los documentos S3, veo todas las cosas que necesito. Simplemente no estoy seguro de cómo uso la biblioteca, esta es la primera vez que uso una biblioteca de Go.

Una guía para conectarse a AWS / S3, luego hacer una llamada de eliminación sería muy útil.

Muchas gracias :)


Probablemente sea más fácil de lo que pensaste. Este código de muestra enumera un cubo. Tienes que usar tus credenciales y un nombre de cubo, por supuesto ...

package main import ( "fmt" "launchpad.net/goamz/aws" "launchpad.net/goamz/s3" "log" ) func main() { auth := aws.Auth{ AccessKey: "ASDFASDFASDFASDK", SecretKey: "DSFSDFDWESDADSFASDFADFDSFASDF", } euwest := aws.EUWest connection := s3.New(auth, euwest) mybucket := connection.Bucket("mytotallysecretbucket") res, err := mybucket.List("", "", "", 1000) if err != nil { log.Fatal(err) } for _, v := range res.Contents { fmt.Println(v.Key) } }


La publicación original usa la biblioteca goamz. AWS mantiene la biblioteca oficial de aws-sdk-go que se debe usar en su lugar.

Consulte el método de conexión en el siguiente ejemplo, que enumera todas las claves en un depósito específico utilizando Go sdk oficial de AWS:

package main import ( "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/s3" ) func main() { svc := s3.New(session.New(), &aws.Config{Region: aws.String("us-east-1")}) params := &s3.ListObjectsInput{ Bucket: aws.String("bucket"), } resp, _ := svc.ListObjects(params) for _, key := range resp.Contents { fmt.Println(*key.Key) } }