Product Selector

Fusion 5.12
    Fusion 5.12

    Blob Store APIManaged Fusion Admin APIs

    Table of Contents

    The Blob Store REST API allows storing binary objects in Solr. The primary use case for this is to store entity extraction models, lookup lists or exclusion lists for use in index pipelines. This may include the entity extraction models and lookup lists included with Managed Fusion in the {fusion_path}/data/nlp directory, or files that you have created on your own.

    You can also work with blobs in the Managed Fusion UI using the blob manager.

    When you upload a blob without specifying an app, the blob is stored in the system_blobs collection and you can access it via the Object Explorer.

    Blob types

    A resourceType query parameter can be used to specify the blob type. For example, specify file:js-index when uploading a Javascript index stage, like this:

    curl -u USERNAME:PASSWORD -H 'Content-Type: text/javascript' -X PUT 'https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs/index-pipeline-js-stage.js?resourceType=file:js-index' --data-binary @index-pipeline-js-stage.js

    The complete list of valid values for resourceType is below:

    Type Description

    driver:jdbc

    file:js-index

    A JavaScript file for use with a Managed Javascript index stage

    file:js-query

    A JavaScript file for use with a Managed Javascript query stage

    file

    Any uploaded file, such as from the Quickstart or the Index Workbench

    unspecified

    A blob of unknown type

    If no resourceType is specified on upload, "other" is assigned by default.

    Examples

    Upload a JavaScript file to the blob store:

    REQUEST

    curl -u USERNAME:PASSWORD -X PUT -H 'Content-Type: text/javascript' --data-binary @query-pipeline-js-stage.js https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs/query-pipeline-js-stage.js?resourceType=file:js-query

    The response is empty.

    Verify that the JavaScript blob was uploaded:

    REQUEST

    curl -u USERNAME:PASSWORD https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs?resourceType=file:js-query

    RESPONSE

    [ {
      "id" : "query-pipeline-js-stage.js",
      "path" : "/query-pipeline-js-stage.js",
      "dir" : "/",
      "filename" : "query-pipeline-js-stage.js",
      "contentType" : "text/javascript",
      "size" : 0,
      "modifiedTime" : "2018-09-11T16:23:17.743Z",
      "version" : 1611328911094841344,
      "md5" : "d41d8cd98f00b204e9800998ecf8427e",
      "metadata" : {
        "resourceType" : "file:js-query"
      }
    } ]

    Upload an OpenNLP sentence model binary file to the blob store:

    REQUEST

    curl -u USERNAME:PASSWORD -X PUT --data-binary @data/nlp/models/en-sent.bin -H 'Content-type: application/octet-stream' https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs/sentenceModel.bin
    In this example, we have changed the name of the blob during upload by giving it a different ID. The file is named 'en-sent.bin' but we have defined the ID of this to 'sentenceModel.bin'. When we use this blob in an index pipeline, we would refer to it by the ID we have given it.

    Get the manifest for a sentence OpenNLP model we have previously saved in the blob store:

    REQUEST

    curl -u USERNAME:PASSWORD -X HEAD https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs/sentenceModel.bin

    RESPONSE

    {
      "name" : "sentenceModel.bin",
      "contentType" : "application/octet-stream",
      "size" : 98533,
      "modifiedTime" : "2014-09-08T18:50:07.559Z",
      "version" : 1478704189996531712,
      "md5" : "3822c5f82cb4ba139284631d2f6b7fde"
    }

    Upload a JDBC driver, using slashes in the blob name:

    REQUEST

    curl -u USERNAME:PASSWORD -X PUT --data-binary @en-sent.bin -H 'Content-length: 6' -H 'Content-type: application/octet-stream' https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs/good/to/go/sentenceModel.bin?resourceType=driver:jdbc

    RESPONSE

    {
      "name" : "good/to/go/sentenceModel.bin",
      "contentType" : "application/octet-stream",
      "size" : 6,
      "modifiedTime" : "2017-04-04T15:58:32.856Z",
      "version" : 0,
      "md5" : "b1946ac92492d2347c6235b4d2611184",
      "metadata" : {
        "subtype" : "driver:jdbc",
        "resourceType" : "driver:jdbc"
      }
    }

    Get the JDBC driver that was uploaded:

    REQUEST

    curl -u USERNAME:PASSWORD https://EXAMPLE_COMPANY.b.lucidworks.cloud/api/blobs?resourceType=driver:jdbc

    RESPONSE

    [ {
      "name" : "good/to/go/sentenceModel.bin",
      "contentType" : "application/octet-stream",
      "size" : 6,
      "modifiedTime" : "2017-04-04T06:21:53.465Z",
      "version" : 1563727666574524416,
      "md5" : "b1946ac92492d2347c6235b4d2611184",
      "metadata" : {
        "subtype" : "driver:jdbc",
        "resourceType" : "driver:jdbc"
      }
    } ]