MCPcopy
hub / github.com/grafana/tempo / internalNew

Function internalNew

tempodb/backend/s3/s3.go:117–169  ·  view source on GitHub ↗
(cfg *Config, confirm bool)

Source from the content-addressed store, hash-verified

115}
116
117func internalNew(cfg *Config, confirm bool) (*readerWriter, error) {
118 if cfg == nil {
119 return nil, fmt.Errorf("config is nil")
120 }
121
122 l := log.Logger
123
124 // Global minio settings that affect all minio clients in the process
125 if cfg.RetryMaxAttempts > 0 {
126 minio.MaxRetry = cfg.RetryMaxAttempts
127 }
128
129 if cfg.RetryBackoffInitial > 0 {
130 minio.DefaultRetryUnit = cfg.RetryBackoffInitial
131 }
132
133 if cfg.RetryBackoffMax > 0 {
134 minio.DefaultRetryCap = cfg.RetryBackoffMax
135 }
136
137 core, err := createCore(cfg, false)
138 if err != nil {
139 return nil, fmt.Errorf("unexpected error creating core: %w", err)
140 }
141
142 hedgedCore, err := createCore(cfg, true)
143 if err != nil {
144 return nil, fmt.Errorf("unexpected error creating hedgedCore: %w", err)
145 }
146
147 // try listing objects
148 if confirm {
149 _, err = core.ListObjects(cfg.Bucket, cfg.Prefix, "", "/", 1)
150 if err != nil {
151 return nil, fmt.Errorf("unexpected error from ListObjects on %s: %w", cfg.Bucket, err)
152 }
153 }
154
155 encryption, err := buildSSEConfig(cfg)
156 if err != nil {
157 return nil, fmt.Errorf("returned Error when trying to configure Server Side Encryption: %w", err)
158 }
159
160 rw := &readerWriter{
161 logger: l,
162 cfg: cfg,
163 core: core,
164 hedgedCore: hedgedCore,
165 sse: encryption,
166 }
167
168 return rw, nil
169}
170
171func getPutObjectOptions(rw *readerWriter) minio.PutObjectOptions {
172 return minio.PutObjectOptions{

Callers 3

NewNoConfirmFunction · 0.70
NewFunction · 0.70
NewVersionedReaderWriterFunction · 0.70

Calls 2

createCoreFunction · 0.85
buildSSEConfigFunction · 0.85

Tested by

no test coverage detected