> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Blob storage

export const LwTemplate = ({title = "Key questions to get you started", icon = "sparkles", cta = "Powered by Agent Studio", linkHref = "https://lucidworks.com/demo/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta_ai"}) => {
  const [isLoaded, setIsLoaded] = useState(false);
  useEffect(() => {
    const timer = setTimeout(() => {
      setIsLoaded(true);
    }, 500);
    return () => clearTimeout(timer);
  }, []);
  return <div className="lw-template-container">
      <Card title={title} icon={icon}>
        {isLoaded && <span dangerouslySetInnerHTML={{
    __html: `<lw-template id="a029c1a9-28be-427e-b0e1-5d918920246a"></lw-template
            >`
  }} />}
        <Link href={linkHref} className="agent-studio-link text-left text-gray-600 gap-2 dark:text-gray-400 text-sm font-medium flex flex-row items-center hover:text-primary dark:hover:text-primary-light group-hover:text-primary group-hover:dark:text-primary-light">Powered by Lucidworks Agent Studio</Link>
      </Card>
    </div>;
};

export const InlineImage = ({src, alt = '', height = '2em'}) => {
  return <img src={src} alt={alt} style={{
    display: 'inline',
    verticalAlign: 'start',
    height: height,
    margin: '0'
  }} />;
};

[localhost link]: http://localhost:3000/docs/lucidworks-search/04-move-data-in/blob-storage/overview

[mintlify link]: https://doc.lucidworks.com/docs/lucidworks-search/04-move-data-in/blob-storage/overview

[old doc.lw link]: https://doc.lucidworks.com/managed-fusion/5.9/03ti2e

Lucidworks Search accepts large binary objects (blobs) for upload, and stores them in Solr. Blob uploads are used to install models, lookup lists, JDBC drivers, and more. The default limit for uploads to Lucidworks Search is 10MB. If you need more than that, contact Lucidworks.

<LwTemplate />

## 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:

```sh wrap  theme={"dark"}
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`   | A **Upload a JDBC Driver to Fusion Server**                                                                                                                                       |
| `file:js-index` | A JavaScript file for use with a [Managed Javascript index stage](/docs/lucidworks-search/09-developer-documentation/config-specs/index-pipeline-stages/managed-javascript)       |
| `file:js-query` | A JavaScript file for use with a [Managed Javascript query stage](/docs/lucidworks-search/09-developer-documentation/config-specs/query-pipeline-stages/managed-javascript-query) |
| `file`          | Any uploaded file, such as from the **Quickstart** or the [Index Workbench](/docs/lucidworks-search/04-move-data-in/index-workbench/overview)                                     |
| `unspecified`   | A blob of unknown type  If no `resourceType` is specified on upload, "other" is assigned by default.                                                                              |

<AccordionGroup>
  <Accordion title="Upload a JDBC Driver to Fusion Server">
    The JDBC V2 connector is supported, and fetches documents from a relational database via SQL queries. Under the hood, this connector implements the Solr [DataImportHandler (DIH)](https://wiki.apache.org/solr/DataImportHandler) plugin.

    Fusion stores JDBC drivers in the blob store. You can upload a driver using the Fusion UI or the Blob Store API.

    ## How to upload a JDBC driver using the Fusion UI

    {/* // tag::upload[] */}

    1. In the Fusion UI, navigate to **System** > **Blobs**.

    2. Click **Add**.

    3. Select **JDBC Driver**.\
       The "New 'JDBC Driver' Upload" panel appears.
           <img src="https://mintcdn.com/lucidworks/5yWZ-KtZuBe4Y_Fg/assets/images/4.0/blobstore_add_jdbcdriver1.png?fit=max&auto=format&n=5yWZ-KtZuBe4Y_Fg&q=85&s=b7d0a7b57734a2219cb107db40b0f210" alt="Uploading a connector" style={{ width: "450px" }} width="1041" height="686" data-path="assets/images/4.0/blobstore_add_jdbcdriver1.png" />

    4. Click **Choose File** and select the .jar file from your file system.
           <img src="https://mintcdn.com/lucidworks/5yWZ-KtZuBe4Y_Fg/assets/images/4.0/blobstore_add_jdbcdriver2.png?fit=max&auto=format&n=5yWZ-KtZuBe4Y_Fg&q=85&s=e722ae92551c19068ce783d6e71798b4" alt="Uploading connector" width="2455" height="1012" data-path="assets/images/4.0/blobstore_add_jdbcdriver2.png" />

    5. Click **Upload**.\
       The new driver’s blob manifest appears.
           <img src="https://mintcdn.com/lucidworks/5yWZ-KtZuBe4Y_Fg/assets/images/4.0/blobstore_add_jdbcdriver3.png?fit=max&auto=format&n=5yWZ-KtZuBe4Y_Fg&q=85&s=f3c48edcb769b7df7cd300dc449e249f" alt="Uploaded connector" width="2432" height="1009" data-path="assets/images/4.0/blobstore_add_jdbcdriver3.png" />

    From this screen you can also delete or replace the driver.

    {/* // end::upload[] */}

    ## How to install a JDBC driver using the API

    1. Upload the JAR file to Fusion’s blob store using the [`/blobs/{id}` endpoint](/api-reference/blobs/upload-a-blob).

       Specify an arbitrary blob ID, and a `resourceType` value of `plugin:connector`, as in this example:

       ```bash theme={"dark"}
       curl -u USERNAME:PASSWORD -H "content-type:application/java-archive" -H "content-length:707261" -X PUT --data-binary @postgresql-42.0.0.jar http://localhost:8764/api/blobs/mydriver?resourceType=driver:jdbc
       ```

       Success response:

       ```json theme={"dark"}
       {
         "name" : "mydriver",
         "contentType" : "application/java-archive",
         "size" : 707261,
         "modifiedTime" : "2017-06-09T19:00:48.919Z",
         "version" : 0,
         "md5" : "c67163ca764bfe632f28229c142131b5",
         "metadata" : {
           "subtype" : "driver:jdbc",
           "drivers" : "org.postgresql.Driver",
           "resourceType" : "driver:jdbc"
         }
       }
       ```

       Fusion automatically publishes the event to the cluster, and the listeners perform the driver installation process on each node.

       <Tip>   If the blob ID is identical to an existing one, the old driver will be uninstalled and the new driver will installed in its place. To get the list of existing blob IDs, run: `curl -u USERNAME:PASSWORD https://FUSION_HOST:FUSION_PORT/api/blobs`</Tip>
    2. To verify the uploaded driver, run:

       ```bash theme={"dark"}
       curl -u USERNAME:PASSWORD https://FUSION_HOST:FUSION_PORT/api/blobs/BLOB_ID/manifest
       ```

       Where the `BLOB_ID` is the name specified during upload, such as "mydriver" above. A success response looks like this:

       ```json theme={"dark"}
       {
         "name" : "mydriver",
         "contentType" : "application/java-archive",
         "size" : 707261,
         "modifiedTime" : "2017-06-09T19:05:17.897Z",
         "version" : 1569755095787110400,
         "md5" : "c67163ca764bfe632f28229c142131b5",
         "metadata" : {
           "subtype" : "driver:jdbc",
           "drivers" : "org.postgresql.Driver",
           "resourceType" : "driver:jdbc"
         }
       }
       ```
  </Accordion>

  <Accordion title="Quickstart">
    The Quickstart is a wizard that lets you explore some of Lucidworks Search’s core capabilities:

    * Creating or selecting an app
    * Selecting a collection (where data is stored)
    * Indexing data
    * Searching

    <Card title="Using The Quickstart Wizard" class="note-image" href="https://academy.lucidworks.com/using-the-quickstart-guide" cta="Take this course on the LucidAcademy." icon="graduation-cap" iconType="duotone">
      The course for **Using The Quickstart Wizard** focuses on using the wizard to practice using the key functions of Fusion.
    </Card>

    ## Step through the Quickstart wizard

    If it is not already open, open the Quickstart wizard. In the Lucidworks Search launcher, click **New here? Get started...**.

    <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-0.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=329060363f0f5f90f8549d04c48d7ea3" alt="Quickstart" width="2880" height="1606" data-path="assets/images/5.0/quickstart-0.png" />

    1. Click **Continue**.\
       On the **Select an App** screen, you can select or create an app for your quickstart data.

           <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-1.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=4052bec5c555a091d209b2ce5532f1c2" alt="quickstart-1" width="2560" height="1406" data-path="assets/images/5.0/quickstart-1.png" />

       If you click **Create new app**, Lucidworks Search prompts you to enter an app name (and optionally a description), then click **Create App** to return to the Quickstart. Your new app is selected by default.
    2. After selecting an app, click **Continue**.

       On the **Select a Collection** screen, you can select or create a [collection](/docs/lucidworks-search/04-move-data-in/collection/overview) for your quickstart data. A collection with the same name as your app is created automatically:

           <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-2.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=b8827c03f1fe2ad3098e2c2085eba784" alt="quickstart-2" width="2560" height="1406" data-path="assets/images/5.0/quickstart-2.png" />
    3. Click **Continue**.\
       On the **Index Data** screen, you can either select one of the built-in sample datasets or click **Use my data** to upload your own:

           <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-3.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=aadb5946967cccea0d40b5506e05d62c" alt="quickstart-3" width="2560" height="1406" data-path="assets/images/5.0/quickstart-3.png" />
    4. Click **Continue**.\
       On the **Query Data** screen, you can see all search results and enter your own search queries to test the indexed dataset. You can also select the display fields or view the parsed documents:

           <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-4.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=7f56764e53b2a70e236498f26f1d5e5d" alt="quickstart-4" width="2560" height="1406" data-path="assets/images/5.0/quickstart-4.png" />
    5. Click **Continue**.

           <img src="https://mintcdn.com/lucidworks/zH_ln2rWO5G9pvTA/assets/images/5.0/quickstart-5.png?fit=max&auto=format&n=zH_ln2rWO5G9pvTA&q=85&s=f3f2322e0ae634f07e09dabc962edc6c" alt="quickstart-5" width="2560" height="1406" data-path="assets/images/5.0/quickstart-5.png" />

       From here, you can do the following:

       * Open the [Index Workbench](/docs/lucidworks-search/04-move-data-in/index-workbench/overview) to change the index pipeline.
       * Open the [Query Workbench](/docs/lucidworks-search/05-move-data-out/query-workbench/overview) to change the query pipeline.

       The workbenches are essentials tools in the Fusion workflow.
  </Accordion>
</AccordionGroup>

## The Blob manager

In addition to the [Blob Store API](/api-reference/blobs/get-blob-store-service-status), the Lucidworks Search UI provides an interface to the blob store in the [Lucidworks Search workspace](/docs/lucidworks-search/03-ui-tour/overview) at **System** > **Blobs**.

* Click **Add** to upload a new blob.
* Select an uploaded blob to view, replace, or delete it.

### Blob editor

The blob editor gives the ability to edit blobs in the Lucidworks Search UI in a variety of formats:

* CSV
* Java
* JavaScript
* Python
* SCALA
* Typescript
* Plain text

Navigate to **System > Blobs**, select a blob, and click the **Edit blob** button to open the editor:

<img src="https://mintcdn.com/lucidworks/S4K1ej9-5L4WZcZ9/assets/images/5.2/blobs-json-edit.png?fit=max&auto=format&n=S4K1ej9-5L4WZcZ9&q=85&s=a864a446a5c9c5e78c43ca0d19c76e7d" alt="Edit blob button" width="1366" height="794" data-path="assets/images/5.2/blobs-json-edit.png" />

<Note>
  * If the **Edit blob** button is not available, the blob type cannot be edited with the blob editor.
  * JavaScript can be edited directly in the Lucidworks Search UI.
</Note>

The editor has several elements worth noting:

| Elements                                                          | Description                                                        |
| ----------------------------------------------------------------- | ------------------------------------------------------------------ |
| <InlineImage src="/assets/images/5.2/json-editor/copy.png" />     | Copies the JSON to the clipboard.                                  |
| <InlineImage src="/assets/images/5.2/json-editor/paste.png" />    | Pastes the clipboard into the editor. Only valid JSON is accepted. |
| <InlineImage src="/assets/images/5.2/json-editor/expand.png" />   | Expands the editor to a fullscreen view.                           |
| <InlineImage src="/assets/images/5.2/json-editor/condense.png" /> | Condenses the editor to a compact view.                            |
| <InlineImage src="/assets/images/5.2/json-editor/save.png" />     | Saves the JSON in the editor and updates the blob.                 |
| <InlineImage src="/assets/images/5.2/json-editor/reset.png" />    | Resets changes made since the last time changes were applied.      |

For instructions, see **Use the Blob Editor**.

<Accordion title="Use the Blob Editor">
  The blob editor gives the ability to edit blobs in the Lucidworks Search UI in a variety of formats:

  * CSV
  * Java
  * JavaScript
  * Python
  * SCALA
  * Typescript
  * Plain text

  This article focuses on editing an existing blob. In this example, the blob is a [stopwords file](/docs/lucidworks-search/07-improve-your-queries/stopwords-file/overview) that needs to be updated.

  1. Navigate to **System > Blobs** and select a valid blob.
  2. Click the **Edit blob** button. This button is only available for valid blob types.

       <img src="https://mintcdn.com/lucidworks/S4K1ej9-5L4WZcZ9/assets/images/5.2/blobs-json-edit.png?fit=max&auto=format&n=S4K1ej9-5L4WZcZ9&q=85&s=a864a446a5c9c5e78c43ca0d19c76e7d" alt="Edit blob button" width="1366" height="794" data-path="assets/images/5.2/blobs-json-edit.png" />

     The editor appears:

       <img src="https://mintcdn.com/lucidworks/S4K1ej9-5L4WZcZ9/assets/images/5.2/blobs-json-edit-before.png?fit=max&auto=format&n=S4K1ej9-5L4WZcZ9&q=85&s=ced84c9616040cd35d9d804bed480c75" alt="Blobs file before" width="750" height="664" data-path="assets/images/5.2/blobs-json-edit-before.png" />
  3. (optional) Click **Expand editor** to view the editor in fullscreen mode.
  4. (optional) Click the **Copy** button to copy the blob details. This can be saved somewhere, if desired.
  5. Copy the contents of the new stopwords file, and click the **Paste** button to replace the contents of the blob. Alternatively, delete the existing contents and manually paste the new contents.

       <img src="https://mintcdn.com/lucidworks/S4K1ej9-5L4WZcZ9/assets/images/5.2/blobs-json-edit-after.png?fit=max&auto=format&n=S4K1ej9-5L4WZcZ9&q=85&s=44afeb9a9513c7b8e0ffb58f8a2996f0" alt="Blobs file after" width="750" height="664" data-path="assets/images/5.2/blobs-json-edit-after.png" />
  6. Click the **Save** button to save your changes.
</Accordion>
