Blob Store APIFusion Admin APIs
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 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 Fusion UI using the blob manager.
When you upload a blob without specifiying an app, the blob is stored in the system_blobs
collection and you can access it via the Object Explorer.
Previously, you could use the Blob Store API to install connectors. Instead, use the Connectors API. |
Blob Types
A resourceType
query parameter can be used to specify the blob type. For example, specify file
when uploading a text or CSV file, like this:
curl -H 'Content-Type: text/csv' -u USERNAME:PASSWORD -X PUT 'https://FUSION_HOST:FUSION_PORT/api/apps/APP_NAME/blobs/quickstart/EXAMPLE.csv?resourceType=file' --data-binary @/path/EXAMPLE.csv
The complete list of valid values for resourceType
is below:
Type | Description |
---|---|
|
A Banana dashboard |
|
|
|
|
|
A JavaScript file for use with a Managed Javascript index stage |
|
A JavaScript file for use with a Managed Javascript query stage |
|
Any uploaded file, such as from the Quickstart or the Index Workbench |
|
|
|
A blob of unknown type If no |
|
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://FUSION_HOST:FUSION_PORT/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://FUSION_HOST:FUSION_PORT/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://FUSION_HOST:FUSION_PORT/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://FUSION_HOST:FUSION_PORT/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://FUSION_HOST:FUSION_PORT/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://FUSION_HOST:FUSION_PORT/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"
}
} ]