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

# FileHandler

> FileHandler — Kinetica TypeScript API

<div className="kinetica-typedoc">
  <div className="tsd-page-title" />

  <div className="section tsd-panel tsd-comment">
    <div className="tsd-comment tsd-typography">
      <p>KIFS file access: uploads, downloads, and chunked uploads of large files.</p>
      <p>Also reachable as <code>GPUdb.FileHandler</code>, matching the JavaScript API.</p>
    </div>

    <div className="tsd-comment tsd-typography">
      <div className="tsd-tag-example">
        <h4 className="tsd-anchor-link" id="example">Example</h4>

        <div>
          ```
          const files = new FileHandler(gpudb);
          await files.upload('/local/path/data.csv', '/kifs_dir/');
          const [base64] = await files.download('/kifs_dir/data.csv');
          ```
        </div>
      </div>
    </div>
  </div>

  <div className="aside tsd-sources">
    <ul>
      <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16184">src/GPUdb.ts:16184</a></li>
    </ul>
  </div>

  <div className="section tsd-panel-group tsd-index-group">
    <div className="section tsd-panel tsd-index-panel">
      <div className="details tsd-index-content tsd-accordion" open="">
        <div className="summary tsd-accordion-summary tsd-index-summary">
          <h5 className="tsd-index-heading uppercase">Index</h5>
        </div>

        <div className="tsd-accordion-details">
          <div className="section tsd-index-section">
            <h3 className="tsd-index-heading tsd-anchor-link" id="constructors">Constructors</h3>
            <div className="tsd-index-list"><a href="#constructor" className="tsd-index-link"><span>constructor</span></a> </div>
          </div>

          <div className="section tsd-index-section">
            <h3 className="tsd-index-heading tsd-anchor-link" id="properties">Properties</h3>
            <div className="tsd-index-list"><a href="#chunksize" className="tsd-index-link"><span>chunkSize</span></a> <a href="#gpudb" className="tsd-index-link"><span>gpuDB</span></a> </div>
          </div>

          <div className="section tsd-index-section">
            <h3 className="tsd-index-heading tsd-anchor-link" id="methods">Methods</h3>
            <div className="tsd-index-list"><a href="#download" className="tsd-index-link"><span>download</span></a> <a href="#download_and_save" className="tsd-index-link"><span>download\_and\_save</span></a> <a href="#parse_dir_destination" className="tsd-index-link"><span>parse\_dir\_destination</span></a> <a href="#parse_flag_to_str" className="tsd-index-link"><span>parse\_flag\_to\_str</span></a> <a href="#parse_options" className="tsd-index-link"><span>parse\_options</span></a> <a href="#upload" className="tsd-index-link"><span>upload</span></a> <a href="#upload_multipart" className="tsd-index-link"><span>upload\_multipart</span></a> <a href="#extract_filename" className="tsd-index-link"><span>extract\_filename</span></a> </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <div className="details tsd-panel-group tsd-member-group tsd-accordion" open="">
    <div className="summary tsd-accordion-summary" data-key="section-Constructors">
      <h2 className="tsd-anchor-link" id="constructors-1">Constructors</h2>
    </div>

    <div className="section">
      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="constructor"><span>constructor</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="constructorfilehandler"><span className="tsd-signature-keyword">new</span> <span className="tsd-kind-constructor-signature">FileHandler</span><span className="tsd-signature-symbol">(</span><span className="tsd-kind-parameter">gpuDB</span><span className="tsd-signature-symbol">:</span> <a href="/content/api/typescript/classes/GPUdb" className="tsd-signature-type tsd-kind-class">GPUdb</a><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <a href="" className="tsd-signature-type tsd-kind-class">FileHandler</a></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Creates a FileHandler.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">gpuDB</span>: <a href="/content/api/typescript/classes/GPUdb" className="tsd-signature-type tsd-kind-class">GPUdb</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Client providing access to the server</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <a href="" className="tsd-signature-type tsd-kind-class">FileHandler</a></h4>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16203">src/GPUdb.ts:16203</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>
    </div>
  </div>

  <div className="details tsd-panel-group tsd-member-group tsd-accordion" open="">
    <div className="summary tsd-accordion-summary" data-key="section-Properties">
      <h2 className="tsd-anchor-link" id="properties-1">Properties</h2>
    </div>

    <div className="section">
      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="chunksize"><span>chunkSize</span></h3>
        <div className="tsd-signature"><span className="tsd-kind-property">chunkSize</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">number</span><span className="tsd-signature-symbol"> = ...</span></div>

        <div className="tsd-comment tsd-typography">
          <p>Size above which <code>upload</code> sends a file as a chunked multipart upload instead of in one request.</p>
          <p>Matches the JavaScript API's <code>FileHandler.chunkSize</code>, including its 60 MB default and its writability -- callers that set their own threshold, as Cloud Workbench does, keep working unchanged.</p>
        </div>

        <div className="aside tsd-sources">
          <ul>
            <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16196">src/GPUdb.ts:16196</a></li>
          </ul>
        </div>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="gpudb"><code className="tsd-tag">Readonly</code><span>gpuDB</span></h3>
        <div className="tsd-signature"><span className="tsd-kind-property">gpuDB</span><span className="tsd-signature-symbol">:</span> <a href="/content/api/typescript/classes/GPUdb" className="tsd-signature-type tsd-kind-class">GPUdb</a></div>

        <div className="tsd-comment tsd-typography">
          <p>The client used to reach the server</p>
        </div>

        <div className="aside tsd-sources">
          <ul>
            <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16186">src/GPUdb.ts:16186</a></li>
          </ul>
        </div>
      </div>
    </div>
  </div>

  <div className="details tsd-panel-group tsd-member-group tsd-accordion" open="">
    <div className="summary tsd-accordion-summary" data-key="section-Methods">
      <h2 className="tsd-anchor-link" id="methods-1">Methods</h2>
    </div>

    <div className="section">
      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="download"><span>download</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="download-1"><span className="tsd-kind-call-signature">download</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">filenames</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">options</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">></span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Downloads files from KIFS and returns their base64-encoded contents.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">filenames</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>KIFS path, or an array of paths</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">options</span>: <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Options for <code>/download/files</code></p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">callback</span>: <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Optional callback function</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">></span></h4>
              <p>Promise resolving to the base64 contents, in request order</p>

              <div className="tsd-comment tsd-typography">
                <div className="tsd-tag-example">
                  <h4 className="tsd-anchor-link" id="example-1">Example</h4>

                  <div>
                    ```
                    const [encoded] = await files.download('/kifs_dir/data.csv');
                    const text = atob(encoded);
                    ```
                  </div>
                </div>
              </div>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16525">src/GPUdb.ts:16525</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="download_and_save"><span>download\_and\_save</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="download_and_save-1"><span className="tsd-kind-call-signature">download\_and\_save</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">filenames</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">destination</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">options</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">></span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Downloads files from KIFS and writes them to a local directory.</p>
                <p>Node.js only -- a browser cannot write to the filesystem. The directory is created if it does not exist.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">filenames</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>KIFS path, or an array of paths</p>
                    </div>
                  </li>

                  <li>
                    <span><span className="tsd-kind-parameter">destination</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Local directory to write into</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">options</span>: <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Options for <code>/download/files</code></p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">callback</span>: <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Optional callback function</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">></span></h4>
              <p>Promise resolving to the paths written</p>

              <div className="tsd-comment tsd-typography">
                <div className="tsd-tag-example">
                  <h4 className="tsd-anchor-link" id="example-2">Example</h4>

                  <div>
                    ```
                    const written = await files.download_and_save(
                        ['/kifs_dir/a.csv', '/kifs_dir/b.csv'], '/local/dir');
                    ```
                  </div>
                </div>
              </div>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16566">src/GPUdb.ts:16566</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="parse_dir_destination"><span>parse\_dir\_destination</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="parse_dir_destination-1"><span className="tsd-kind-call-signature">parse\_dir\_destination</span><span className="tsd-signature-symbol">(</span><span className="tsd-kind-parameter">destination</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Normalises a KIFS directory so it starts and ends with a slash.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">destination</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Directory path, possibly missing its slashes</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">string</span></h4>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16226">src/GPUdb.ts:16226</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="parse_flag_to_str"><span>parse\_flag\_to\_str</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="parse_flag_to_str-1"><span className="tsd-kind-call-signature">parse\_flag\_to\_str</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">value</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">boolean</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">undefined</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">default\_value</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Coerces a flag to the string form the server expects.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">value</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">boolean</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">undefined</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Boolean or string flag</p>
                    </div>
                  </li>

                  <li>
                    <span><span className="tsd-kind-parameter">default\_value</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Returned when the value is absent or unusable</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">string</span></h4>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16247">src/GPUdb.ts:16247</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="parse_options"><span>parse\_options</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="parse_options-1"><span className="tsd-kind-call-signature">parse\_options</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">incoming\_options</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">undefined</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">endpoint</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Builds the options for a KIFS call, forcing the encoding this handler transfers in. Caller options are preserved, unlike the JavaScript API, which discards them.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">incoming\_options</span>: <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">null</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">undefined</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Options supplied by the caller</p>
                    </div>
                  </li>

                  <li>
                    <span><span className="tsd-kind-parameter">endpoint</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>'upload' or 'download'</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></h4>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16268">src/GPUdb.ts:16268</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="upload"><span>upload</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="upload-1"><span className="tsd-kind-call-signature">upload</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">files</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span> <span className="tsd-signature-symbol">|</span> (<span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span>)<span className="tsd-signature-symbol">\[]</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">destination</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">options</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">progress\_callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/UploadProgressCallback" className="tsd-signature-type tsd-kind-type-alias">UploadProgressCallback</a><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">boolean</span><span className="tsd-signature-symbol">></span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Uploads files to KIFS.</p>
                <p>Accepts local paths (Node.js only) or Blob/File objects (any environment), singly or as an array. Unlike the JavaScript API, file contents are read as binary rather than UTF-8, so images, archives and other non-text files survive the round trip.</p>
                <p>Anything larger than <a href="#chunksize" className="tsd-kind-property">chunkSize</a> is sent through <a href="#upload_multipart" className="tsd-kind-method">upload\_multipart</a> rather than in a single request, so a big file does not have to be held in one payload -- the same threshold the JavaScript API applied. Everything smaller goes in one batched call.</p>
                <p><code>progress\_callback</code> reports the chunked portion of the work only, as a percentage from 0 to 100. When several files need chunking the percentage spans the whole set rather than restarting per file, so it rises monotonically to 100.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">files</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span> <span className="tsd-signature-symbol">|</span> (<span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span>)<span className="tsd-signature-symbol">\[]</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Local paths, or Blob/File objects</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">destination</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>KIFS directory; defaults to the root</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">options</span>: <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Options for <code>/upload/files</code></p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">progress\_callback</span>: <a href="/content/api/typescript/types/UploadProgressCallback" className="tsd-signature-type tsd-kind-type-alias">UploadProgressCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Percent complete; chunked uploads only</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">callback</span>: <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Optional callback function</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">boolean</span><span className="tsd-signature-symbol">></span></h4>
              <p>Promise resolving to true when every file was accepted</p>

              <div className="tsd-comment tsd-typography">
                <div className="tsd-tag-example">
                  <h4 className="tsd-anchor-link" id="example-3">Example</h4>

                  <div>
                    ```
                    await files.upload(['/local/a.csv', '/local/b.csv'], '/kifs_dir/');
                    await files.upload(inputElement.files[0], '/kifs_dir/');   // browser

                    // A file over chunkSize is chunked automatically
                    await files.upload(bigFile, '/kifs_dir/', {},
                        percent => console.log(`${percent.toFixed(1)}%`));
                    ```
                  </div>
                </div>
              </div>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16315">src/GPUdb.ts:16315</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="upload_multipart"><span>upload\_multipart</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="upload_multipart-1"><span className="tsd-kind-call-signature">upload\_multipart</span><span className="tsd-signature-symbol">(</span><br /> <span className="tsd-kind-parameter">file</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">destination</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">chunk\_size</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">number</span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">options</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">progress\_callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/UploadProgressCallback" className="tsd-signature-type tsd-kind-type-alias">UploadProgressCallback</a><span className="tsd-signature-symbol">,</span><br /> <span className="tsd-kind-parameter">callback</span><span className="tsd-signature-symbol">?:</span> <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a><span className="tsd-signature-symbol">,</span><br /><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Uploads one large file to KIFS in chunks.</p>
                <p>Initiates a multipart upload, sends each chunk in order, then completes it. If any chunk fails the upload is cancelled server-side before the error is rethrown, so no partial upload is left behind.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">file</span>: <span className="tsd-signature-type">string</span> <span className="tsd-signature-symbol">|</span> <span className="tsd-signature-type">Blob</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Blob/File to upload, or a local path under Node.js</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">destination</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>KIFS directory; defaults to the root</p>
                    </div>
                  </li>

                  <li>
                    <span><span className="tsd-kind-parameter">chunk\_size</span>: <span className="tsd-signature-type">number</span><span className="tsd-signature-symbol"> = ...</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Bytes per chunk; defaults to 8 MB</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">options</span>: <span className="tsd-signature-type">Record</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Options for <code>/upload/files</code></p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">progress\_callback</span>: <a href="/content/api/typescript/types/UploadProgressCallback" className="tsd-signature-type tsd-kind-type-alias">UploadProgressCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Called with percent complete after each chunk</p>
                    </div>
                  </li>

                  <li>
                    <span><code className="tsd-tag">Optional</code><span className="tsd-kind-parameter">callback</span>: <a href="/content/api/typescript/types/GPUdbCallback" className="tsd-signature-type tsd-kind-type-alias">GPUdbCallback</a></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Optional callback function</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">Promise</span><span className="tsd-signature-symbol">\<</span><span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">></span></h4>
              <p>Promise resolving to the multipart upload's UUID</p>

              <div className="tsd-comment tsd-typography">
                <div className="tsd-tag-example">
                  <h4 className="tsd-anchor-link" id="example-4">Example</h4>

                  <div>
                    ```
                    await files.upload_multipart(bigFile, '/kifs_dir/', 8 * 1024 * 1024, {},
                        percent => console.log(`${percent.toFixed(1)}%`));
                    ```
                  </div>
                </div>
              </div>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16424">src/GPUdb.ts:16424</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>

      <div className="section tsd-panel tsd-member">
        <h3 className="tsd-anchor-link" id="extract_filename"><code className="tsd-tag">Static</code><span>extract\_filename</span></h3>

        <ul className="tsd-signatures">
          <li className="">
            <div className="tsd-signature tsd-anchor-link" id="extract_filename-1"><span className="tsd-kind-call-signature">extract\_filename</span><span className="tsd-signature-symbol">(</span><span className="tsd-kind-parameter">full\_path</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">,</span> <span className="tsd-kind-parameter">sep</span><span className="tsd-signature-symbol">?:</span> <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol">)</span><span className="tsd-signature-symbol">:</span> <span className="tsd-signature-type">string</span></div>

            <div className="tsd-description">
              <div className="tsd-comment tsd-typography">
                <p>Returns the last segment of a path.</p>
              </div>

              <div className="tsd-parameters">
                <h4 className="tsd-parameters-title">Parameters</h4>

                <ul className="tsd-parameter-list">
                  <li>
                    <span><span className="tsd-kind-parameter">full\_path</span>: <span className="tsd-signature-type">string</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Path to take the name from</p>
                    </div>
                  </li>

                  <li>
                    <span><span className="tsd-kind-parameter">sep</span>: <span className="tsd-signature-type">string</span><span className="tsd-signature-symbol"> = '/'</span></span>

                    <div className="tsd-comment tsd-typography">
                      <p>Separator to split on</p>
                    </div>
                  </li>
                </ul>
              </div>

              <h4 className="tsd-returns-title">Returns <span className="tsd-signature-type">string</span></h4>

              <div className="aside tsd-sources">
                <ul>
                  <li>Defined in <a href="https://github.com/kineticadb/kinetica-api-typescript/blob/master/src/GPUdb.ts#L16216">src/GPUdb.ts:16216</a></li>
                </ul>
              </div>
            </div>
          </li>
        </ul>
      </div>
    </div>
  </div>
</div>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.