Geo: Implement file download for replicable file strategy
Problem to solve
- Specifically for Package files, but
- While implementing the Self-Service Geo Framework.
Further details
-
Secondary requests a replicable file from the primary (this was done in the spike but it needs to work with whatever we do on the primary side) -
Primary sends the file. The code should be somewhat generic, like an endpoint that calls BlobUploadService. It should be easy to add another Blob type. !25679 (merged) -
This should have tests
Integration between download and upload done separately will be done in #213829 (closed)
It's ok to copy from the implementation of Upload/LFS objects/Artifacts, but in this case it must be done once for all Replicable Files. There should be no "package_file_downloader.rb" etc. The framework code should call out to the replicable model or registry or etc as needed for specific differences.
E.g. Upon completion, it should be pretty clear how we will eventually use this framework to download Upload/LFS objects/Artifacts as well.
Proposal
Documentation
Testing
What does success look like, and how can we measure that?
- In Rails console on the secondary, I can call e.g.
::Geo::ReplicableFileSyncService.new(registry_class_name, registry_id).execute
and the file would replicate.
What is the type of buyer?
- Premium
- Ultimate
Links / references
Edited by Gabriel Mazetto