| 192 | } |
| 193 | |
| 194 | func (uploader *RegularUploader) Upload(ctx context.Context, path string, content io.Reader) error { |
| 195 | uploader.waitGroup.Add(1) |
| 196 | defer uploader.waitGroup.Done() |
| 197 | |
| 198 | statistics.WalgMetrics.UploadedFilesTotal.Inc() |
| 199 | if uploader.tarSize != nil { |
| 200 | content = utility.NewWithSizeReader(content, uploader.tarSize) |
| 201 | } |
| 202 | err := uploader.UploadingFolder.PutObjectWithContext(ctx, path, content) |
| 203 | if err != nil { |
| 204 | statistics.WalgMetrics.UploadedFilesFailedTotal.Inc() |
| 205 | uploader.failed.Load() |
| 206 | tracelog.ErrorLogger.Printf(tracelog.GetErrorFormatter()+"\n", err) |
| 207 | return err |
| 208 | } |
| 209 | return nil |
| 210 | } |
| 211 | |
| 212 | // UploadJSON uploads raw JSON to storage without allocating memory for whole JSON. |
| 213 | func (uploader *RegularUploader) UploadJSON(ctx context.Context, path string, data any) error { |