func New()

in pkg/output/s3/s3.go [61:87]


func New(cfg *ucfg.Config) (s output.Output, err error) {
	c := defaultConfig()
	if err := cfg.Unpack(&c); err != nil {
		return nil, err
	}

	doOnce.Do(func() {
		cfg, err := awsconfig.LoadDefaultConfig(context.TODO(), awsconfig.WithRegion(c.Region))
		if err != nil {
			panic(err)
		}
		uploader = manager.NewUploader(s3.NewFromConfig(cfg))
	})
	var buf bytes.Buffer
	gw := gzip.NewWriter(&buf)
	key := fmt.Sprintf("%s_%19d_%03d.gz", c.Prefix, time.Now().UnixNano(), rand.Intn(1000))

	s = &S3Output{
		delimiter: c.Delimiter,
		bucket:    c.Bucket,
		key:       key,
		prefix:    c.Prefix,
		buf:       &buf,
		gw:        gw,
	}
	return s, nil
}