runt1me / stormcloud

the best backup system
2 stars 0 forks source link

Transfer Data Back to Client Machine (aka "restore") #53

Closed EccentricKnight closed 7 months ago

EccentricKnight commented 1 year ago

We need a mechanism to transfer data back to the client machine - ideally a user-selected version when multiple backup versions are available.

EccentricKnight commented 10 months ago

Dropped multi-versioning requirement from pre-release. New issue created for it here: https://github.com/runt1me/stormcloud/issues/70

runt1me commented 8 months ago

An MVP version of this is complete, pending additional testing and API integration.

I scoped it down a little bit for the MVP. This version will not handle file sizes over 300MB (arbitrarily chosen threshold which should be memory-safe from the server's perspective), so I will open a new issue (not pre-release req) for handling large file sizes for restore. We will need to probably adopt a streaming approach again for this, but it's going to unfortunately be different than the previous streaming we have done, since we are only streaming the HTTP response, and not initiating the request ourselves to the client.

Issue https://github.com/runt1me/stormcloud/issues/77

Also, there is a remote possibility that we could have the server mark a file as restored which was not successfully returned to the client if for some reason the client does not successfully receive the response (it would have just successfully sent the request, so this should be unlikely, but it's still possible). I am tolerant of this risk for the MVP but I will open an issue for a future requirement to have the client send a separate "restore complete" API call to the server once the client has verified that the file has been successfully restored. Then the server can have true assurance that the file transfer was successful.

Issue https://github.com/runt1me/stormcloud/issues/76

runt1me commented 8 months ago

Finished off a number of small issues on the client and server tonight to get this polished off. It now works end-to-end, with a few caveats:

runt1me commented 7 months ago

With basic API integration done, I now consider the MVP version of Restore complete.

Nice work @EccentricKnight @PaulThomasWI!