--dryrun to include download estimate as well as check for free space at destination
- Dominant language
- Python
- Stars
- 17.3k
- Forks
- 4.6k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 13
Description
### Describe the feature
using the --dryrun flag it would be great to get an idea of how much will be downloaded and if there would be enough space at the destination for the files being downloaded.
For example:
```
aws s3 sync s3://test-bucket . --dryrun --human
(dryrun) download: s3://test-bucket/file1 to ./file1 (500 MiB)
(dryrun) download: s3://test-bucket/file1 to ./file1 (1 TiB)
Total: 1.5 TiB
Destination Free: 1 TiB
WARNING: Destination does not contain about space for all files.
```
### Use Case
I'm often moving large (multi 100 GB) files in large (multi TB batches) and while I often have a handle on how much space in remaining on my destination drive or share There had been times when I did not realize that a sync might be larger than the remaining space.
Having some indication of the amount of data being transferred while doing a `--dryrun` would make this clear.
### Proposed Solution
ether adding the functionality to `--dryrun` or if worried about additional API calls adding a `--dryrun-with-size` (not an inspired flag name). This would display the size in bytes, adding the `--human` flag would change it the a valid size as `ls` currently does.
### Other Information
Some issues or edge cases.
- The system would need to know about underlying file shares (NFS, SMB)
- Would cause additional API calls
- What happens when there is not enough space at the destination (just warn?)
- Changing --dryrun might cause other applications to break?
### Acknowledgements
- [ ] I may be able to implement this feature request
- [X] This feature might incur a breaking change
### CLI version used
2.4.15
### Environment details (OS name and version, etc.)
AWS Linux, OSx, Windows
Contributor guide
Assessment
This issue has not been assessed yet.