AWS sdk API will only best option for upload entire folder and repo to s3 and download entire bucket of s3 to locally.
For uploading whole folder to s3
aws s3 sync . s3://BucketName
for download whole s3 bucket locally
aws s3 sync s3://BucketName .
you can also assign path As like BucketName/Path for particular folder in s3 to download