TASK22224: fix downloadblob path normalization for prefixed blob names
This commit is contained in:
@@ -49,17 +49,24 @@ ApiProxy.get(async (req, res) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const bloblocation =
|
const decodedBlobName = decodeURI(blobName);
|
||||||
casefolderID + (blobName.indexOf(".json") > 0 ? "/" : "/files/");
|
const normalizedBlobName = decodedBlobName.startsWith(
|
||||||
|
casefolderID + "/"
|
||||||
|
)
|
||||||
|
? decodedBlobName
|
||||||
|
: casefolderID +
|
||||||
|
(decodedBlobName.indexOf(".json") > 0 ? "/" : "/files/") +
|
||||||
|
decodedBlobName;
|
||||||
|
|
||||||
const downloaded = await downloadFile(
|
const downloaded = await downloadFile(
|
||||||
containerName,
|
containerName,
|
||||||
bloblocation + decodeURI(blobName)
|
normalizedBlobName
|
||||||
);
|
);
|
||||||
|
const responseFileName = decodedBlobName.split("/").pop();
|
||||||
|
|
||||||
res.setHeader(
|
res.setHeader(
|
||||||
"content-disposition",
|
"content-disposition",
|
||||||
"attachment; filename=" + decodeURI(blobName)
|
"attachment; filename=" + responseFileName
|
||||||
);
|
);
|
||||||
return res.status(200).send(downloaded);
|
return res.status(200).send(downloaded);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user