J'ai écrit le code pour émettre PreSignedUrl dans Golang, donc je vais le laisser.
package main
import (
"context"
"fmt"
"time"
"os"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
//Informations de connexion S3
accessKey := os.Getenv("AWS_ACCSESS_KEY")
secretKey := os.Getenv("AWS_SECRET_KEY")
region := aws.String(os.Getenv("CUEE_DB_REGION"))
creds := credentials.NewStaticCredentials(accsessKey, secretKey, "")
session := session.Must(session.NewSession(&aws.Config{
Credentials: creds,
Region: region,
}))
svc := s3.New(session)
c, _ := svc.PutObjectRequest(&s3.PutObjectInput{
Bucket: aws.String("Nom du godet"),
Key: aws.String("/diectory/filename"),
})
url, err := c.Presign(15 * time.Minute)
if err != nil {
fmt.Println("error presigning request", err)
return nil, err
}
fmt.Println(url)
}
Vous pouvez définir la date d'expiration ici
url, err := c.Presign(15 * time.Minute)
officiel https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-presigned-urls.html
Vous pouvez télécharger en incluant le fichier dans Body et en accédant à l'URL publiée
Recommended Posts