Closed
Description
I found the following code is serverless-image-handler lambda function code.
parseImageKey(event, requestType) {
if (requestType === "Default") {
// Decode the image request and return the image key
const decoded = this.decodeRequest(event);
return decoded.key;
} else if (requestType === "Thumbor" || requestType === "Custom") {
// Parse the key from the end of the path
const key = (event["path"]).split("/");
return key[key.length - 1];
} else {
// Return an error for all other conditions
throw ({
status: 400,
code: 'ImageEdits::CannotFindImage',
message: 'The image you specified could not be found. Please check your request syntax as well as the bucket you specified to ensure it exists.'
});
}
}
In the following lines
const key = (event["path"]).split("/");
return key[key.length - 1];
the function splits the path with /, which is also delimiter for s3 folders, as a result if I request with this url
mycf.cloudfront.net/fit-in/800x1000/images/004ac6-1572505735720.png
It actually seeks for
mycf.cloudfront.net/fit-in/800x1000/004ac6-1572505735720.png
Correct me if I'm wrong, or may be there is another way to access objects inside folder, or environment variable that could be attached before key.
Thanks in advance.
Metadata
Metadata
Assignees
Labels
No labels