1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| var ( s3Client *s3.Client bucket = "yourbucketname" )
func InitS3Client() { accessKeyID := "xxxxx" secretAccessKey := "xxxxx"
cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-east-1"), config.WithCredentialsProvider(credentials.NewStaticCredentialsProvider(accessKeyID, secretAccessKey, "")), ) if err != nil { log.Fatalf("unable to load SDK config, %v", err) }
s3Client = s3.NewFromConfig(cfg) }
func UploadToS3(filePath, fileName, mimeType string) (string, error) { file, err := os.Open(filePath) if err != nil { return "", fmt.Errorf("failed to open file %q, %v", filePath, err) } defer file.Close()
_, err = s3Client.PutObject(context.TODO(), &s3.PutObjectInput{ Bucket: aws.String(bucket), Key: aws.String(fileName), Body: file, ContentType: aws.String(mimeType), }) if err != nil { return "", fmt.Errorf("failed to upload file to S3, %v", err) }
return fmt.Sprintf("https://%s.s3.amazonaws.com/%s", bucket, fileName), nil }
|