Actions
Bug #6754
closed[Workbench] Report HTTP error instead of sending 0-byte file when error fetching from keep
Start date:
Due date:
% Done:
0%
Estimated time:
Story points:
1.0
Description
Problem¶
Workbench shows files from collections by piping from arv-get. If arv-get can't download the file for any reason, Workbench returns a 200 OK status, with a 0-byte response.
Fix¶
- Add an attribute to CollectionsController's FileStreamer class, and corresponding test stub classes, that captures the exit status of arv-get (
$?
). Before arv-get is run, this attribute isnil
. - Near the end of CollectionsController#show_file, capture the FileStreamer created by file_enumerator. Hook up its
each
strings toresponse.stream
as we do now. In the ensure block, if we haven't written any bytes toresponse.stream
and the arv-get exit attribute does not have status 0, setresponse.status = 500
.
Actions