avalonmediasystem / avalon

Avalon Media System – Samvera Application
http://www.avalonmediasystem.org/
Apache License 2.0
93 stars 51 forks source link

Enable derivative download for materials where original derivative file doesn't match current server locations #5865

Open elynema opened 4 weeks ago

elynema commented 4 weeks ago

Description

In #5816, testing revealed that the current code only [seems to] work for instances where the derivativeFile location is pointing back to muskrat itself. Older configurations in this value did not seem to download properly (error after clicking download). If there is not a way to accomplish this given the diversity of underlying data, we may need to hold this functionality out of 7.8 release (or disable it).

Content stored in HCP also cannot be downloaded at this time, but that is not a requirement for this issue since that content can be downloaded with Archiver.

See #5816 for a list of examples from mco-staging that were tested and more details.

Questions

Done Looks like

Examples that worked with current code (and should continue working):

Examples that did not work with current code:

HCP examples

elynema commented 3 weeks ago

Potential suggestion from Chris: I wonder if having a configurable method specific to the instance for resolving the path might be the best way to go. Then we could handle lots of cases in messy ways but keep it contained and outside the main codebase.

elynema commented 3 weeks ago

Need to do some more investigation before we can really give this a story point estimate.

elynema commented 3 weeks ago

One thing we do for posters: the code tries to locate the actual file, but if it can't, it pulls the streaming URL and downloads some of the streaming file to pull out the thumbnail. Not ideal solution, but could take a similar approach here; would need to make sure that users can't access that.

elynema commented 1 week ago

Start with a configurable method that works for vanilla Avalon. Once that's merged, we can try to adjust code for our local eccentricities.

hls_url attribute contains the path in it. Core config will pull hls_url, and grab just the path. Looking at examples on mco-staging, this seemed to be the most consistent field.

joncameron commented 2 days ago