holepunchto / hyperdrive

Hyperdrive is a secure, real time distributed file system
Apache License 2.0
1.86k stars 135 forks source link

Adding a mirror method #277

Closed andrewosh closed 4 years ago

andrewosh commented 4 years ago

Right now download is used to download the latest versions of specific files/directories within a drive. It'd be possible to extend this to support downloading all previous versions of those files/directories as well, but doing so might complicate the usage (i.e. drive.download('/my-directory', { allVersions: true}).

The UX there gets even trickier when considering mounts. What if /my-directory was previously a mount? It can get hard to reason about.

This PR adds a mirror method that does a full sync of a drive's metadata/content at the Hypercore level. It currently syncs all mounts as well, but this can be made configurable in the future.

Any thoughts on introducing an additional method for this behavior?

todrobbins commented 4 years ago

“You did it...”