This feature targeted at Nexus 3.
Expose a supported end-user consumable HTTP API call that will not block which:
- returns a immediate response which indicates
- if the requested file is already cached and ready to download from Nexus storage
- if the file is in process of being downloaded by Nexus in background
- is never blocked by an already started Nexus outbound request for the same file or related identifiers (ie. GAV)
- can optionally trigger Nexus to begin downloading the requested file from a remote in the background
- can optionally begin downloading the file if it is ready
- ideally the status of the file (whether or not it is locally cached) would be included in a usual repository browse call (i.e. http://[hostname]/service/local/repositories/[repo-id]/content/[path] would extend <content-item> structure by this information).
In Nexus 2.x, all requests to describe, or check the existence of a file or it's hashes are blocking and trigger the download of the main file in the background. This is not ideal in cases where Nexus has already started to download the requested file in another thread (request) - either from a client or during pre-emptive fetch in response to a Smart proxy pre-emptive cache event.
There is one exception ( which we only suggest using as an unsupported workaround ) - downloading the attributes file for the file path. If it exists, then the file is ready to download, since attributes files are only created by Nexus itself after caching of the file locally is complete. Since Nexus 2.11.2, accessing attributes files directly is prevented by default due to NEXUS-8058 - downloading attributes files directly was never intended.