Found the solution ... I increased the "large size threshold" configuration
for the relevant database from 1 MB to 2 MB.

The weird thing about this is that the problem only exists for my REST API
calls.

When I executed a standalone XQuery script that does the same thing,
everything was fine - I was able to see the resized image.

So the question is, why is the REST API dependent on the "large size
threshold" setting ?

Regards,
Danny


On Wed, Apr 29, 2015 at 3:02 PM, Danny Sinang <[email protected]> wrote:

> We have a REST API GET call that appears to not return anything if the
> document being returned is greater than a 1 MB or so.
>
> The document expected is actually a JPG image and the REST API resource
> extension code looks like this :
>
> *declare function **local:get-resized-image* (*$image_server_root*, *$uri*,
> *$width*, *$height*) {
>         *let **$resized_uri*        := *fn:concat*(*fn:substring-before*(
> *$uri*,".jpg"),"_",*$width*,"_",*$height*,".jpg")
>         *let* *$resized_image*      := *if* (*xdmp:uri-is-file*(
> *$resized_uri*)) *then                                      *
>                                         *fn:doc*(*$resized_uri*)
>
>                                    *else
> *
>                                         *let **$image*      := *fn:doc*(
> *$uri*)/*node*()
>                                         *let* *$image_name* :=
> *fn:tokenize*(*$uri*,"/")[*last*()]
>                                         *let* *$url* := *fn:concat*(
> *$image_server_root*,"/",*$width*,"/",*$height*,"/",*$image_name*,
> "?resized_uri=",*$resized_uri*)
>                                         *let* *$temp_image* :=
> *xdmp:http-put*(*$url*,  (), *$image*)[2]
>
>                                         *let* *$_* :=
> *xdmp:document-insert*(*$resized_uri*,*$temp_image*,
> *xdmp:default-permissions*())
>
>                                         *return **$temp_image*
>
>
>         *return document*{*$resized_image*}
>
> };
>
>
> *declare* %rapi:transaction-mode("update") *function* *local:get*(
> *$context* *as **map:map*, *$params*  *as **map:map*) *as **document-node*()*
>
> {
>     *let **$image_server_root*  := "
> http://solrdev1.dom1.mycomp.org:7000/resize_image";
>     *let* *$uri*                := *map:get*(*$params*,"uri")
>     *let* *$width*              := *map:get*(*$params*,"width")
>     *let* *$height*             := *map:get*(*$params*,"height")
>     *let* *$caller*             := *map:get*(*$params*, "caller")
>     *let* *$xml-uri*            := *fn:replace*(*$uri*, "\.(\w+)\s*$",
> ".xml")
>     *let* *$xml-doc*            := *fn:doc*(*$xml-uri*)
>     *let* *$xml-published*      := *fn:data*(*$xml-doc*/*image_challenge*/
> *@published*)
>     *return*
>         *switch* (*$caller*)
>             *case *"external" *return*
>                                *if* (*$xml-published* = "true") *then*
>                                     *let **$mime_type* := *map:put*(
> *$context*,"output-types","image/jpeg")
>                                     *return*
>                                         *local:get-resized-image*(
> *$image_server_root*, *$uri*, *$width*, *$height*)
>                                *else*
>                                     *document* {()}
>              *case *"internal" *return*
>                                 *let **$mime_type* := *map:put*(*$context*
> ,"output-types","image/jpeg")
>                                 *return*
>                                     *local:get-resized-image*(
> *$image_server_root*, *$uri*, *$width*, *$height*)
>              *default* *return    *
>                             *document*{()}
>
> };
>
> I'm able to verify that our solrdev1 server was able to generate the
> resized image and that it got saved in ML.
>
> The only problem we have is that the image document isn't getting returned
> by this GET call when it's bigger than 1 MB.
>
> Is there a config I need to change somewhere ?
>
> Regards,
> Danny
>
>
>
_______________________________________________
General mailing list
[email protected]
Manage your subscription at: 
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to