[x] The tool should write an output CSV with the URLs that failed, in a format that could be used as input: go run . --input input.csv --output output.csv --output-failed failed.csv
[x] Failures in downloading and uploading the images can be temporary: introduce a retry-with-backoff strategy to make the tool more resilient to temporary failures
[x] Do not re-upload the same image to S3
[x] Can you do this without storing anything in a database?
[x] Do not download & process the same image
[x] Can you also do this without storing anything in a database?
[x] To speed up the tool, process and upload in parallel using goroutines
https://github.com/CodeYourFuture/immersive-go-course/tree/main/batch-processing
Extensions: