October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

How to Connect to Lioran S3 and Work with Objects in TypeScript

Connect a TypeScript app to a running Lioran S3 instance, verify its health, and perform basic bucket and object operations while accounting for pre-alpha limits.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To use Lioran S3 from TypeScript, install its pre-alpha driver, connect to a running instance with BastionClient, verify the connection with health(), then create a bucket and use its handle to upload and retrieve objects. You need Node.js 18 or newer, TypeScript 5 or newer, and valid credentials. Lioran S3 V1 is self-hosted, single-node, and pre-alpha—not a drop-in AWS S3 API replacement.

What you need before connecting

  • Node.js 18 or newer and TypeScript 5 or newer.
  • A running Lioran S3 instance.
  • Valid user credentials or an access key and secret key.

The setup guide installs @liorans3/driver@prealpha. That tag does not establish which exact package version will resolve when you install it, so check the package version in your environment and pin a version you have tested. The guide’s caution is direct: “This is pre-alpha infrastructure. Pin versions and test carefully.” The setup guide was authored by Swaraj Puppalwar. The product overview identifies V1 as pre-alpha, launched October 1, 2026. Lioran S3 product overview

As an Amazon Associate I earn from qualifying purchases.

Install the driver and TypeScript tools

From a new project directory, initialize npm, install the driver, add the development tools, and create a TypeScript configuration:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
npm init -y
npm install @liorans3/driver@prealpha
npm install -D typescript tsx @types/node
npx tsc --init

The package and commands above are those shown in the setup guide; they do not imply that the pre-alpha tag points to a fixed version. For a reproducible application, use the tested package version rather than relying indefinitely on a moving tag.

Configure credentials and check the connection

Keep the connection string outside your source files and source control. The guide’s example uses an environment variable:

LIORAN_S3_URI=bastion://admin:[email protected]:27118

Replace the example password with your own credentials, and configure the variable in your local environment or deployment secret manager. Do not commit it or print it in logs. The driver also supports structured username-and-password configuration and access-key-and-secret-key configuration.

Read the connection string from the environment, create a client, and call health() before attempting storage operations. The health response includes the service name and version.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
TypeScript Programming Language - Software Engineer & Coder T-Shirt
  • TypeScript implements a superset of syntax for strictly typed development, facilitating deep static analysis and enhanced development environment integration. The compiler translates source into standard script formats, ensuring parity across any runtime.
  • TypeScript is ideal for front-end developers, full-stack engineers, and software architects who build large-scale web applications. It serves those looking to improve code excellence, reduce bugs through static checking, and maintain complex projects more.
  • Lightweight, Classic fit, Double-needle sleeve and bottom hem
import { BastionClient } from "@liorans3/driver";

const uri = process.env.LIORAN_S3_URI;
if (!uri) {
  throw new Error("LIORAN_S3_URI is not configured");
}

const client = new BastionClient(uri);
const status = await client.health();
console.log({ service: status.service, version: status.version });

Use the actual response shape supported by the driver version you have installed if its types differ from this illustrative access pattern; the setup guide establishes that the response contains service name and version, but not an exact version-specific typing contract.

Create a bucket and upload an object

Create the bucket through client.buckets.create(...), then obtain a bucket handle with client.bucket(name). For text or JSON, pass a string or serialized value to put and specify a content type where appropriate:

await client.buckets.create("demo");
const bucket = client.bucket("demo");

const result = await bucket.put("notes/hello.txt", "Hello from TypeScript", {
  contentType: "text/plain; charset=utf-8",
});

console.log({ key: result.key, size: result.size, sha256: result.sha256 });

The returned result shown by the guide exposes the object key, size in bytes, and SHA-256 value. For JSON, serialize the value and use an appropriate JSON content type:

const record = { id: 42, status: "ready" };
await bucket.put("records/42.json", JSON.stringify(record), {
  contentType: "application/json",
});

Use a stream for large files

For large files, the guide recommends a Node.js read stream rather than loading the full file into memory before upload. This keeps the application from needing a second in-memory copy of the entire object while preparing the request. Follow the installed driver’s stream input types when wiring a file stream into put.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Read, inspect, and delete objects

Retrieve content

Call bucket.get(key) to retrieve an object. Use text() for text content, json<T>() for JSON, or writeToFile(path) when the object should be written to disk.

const object = await bucket.get("notes/hello.txt");
const text = await object.text();
console.log(text);

const jsonObject = await bucket.get("records/42.json");
const record = await jsonObject.json<{ id: number; status: string }>();

Check metadata without downloading content

Use bucket.head(key) when you need metadata rather than the object body. The guide lists content type, content length, ETag, and SHA-256 among the available metadata.

const metadata = await bucket.head("records/42.json");
console.log(metadata);

Delete an object

Remove an object with bucket.delete(key):

await bucket.delete("notes/hello.txt");

List objects and handle errors

For a single page of results, use listPage({ prefix, limit }); it returns pagination metadata alongside that page. Use list({ prefix }) when you want the driver to paginate through results.

const page = await bucket.listPage({ prefix: "records/", limit: 100 });
console.log(page);

const allMatchingObjects = await bucket.list({ prefix: "records/" });

The driver documents structured error types for authentication failures, connection failures, not-found responses, quota errors, and general Bastion errors. Handle these according to the operation and recovery path: correct credentials for authentication, restore connectivity for connection failures, check the requested bucket or key for not-found errors, and respond to quota errors through the service’s configured limits. Avoid logging connection strings, passwords, or secret keys while diagnosing failures.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Plan network security for the deployment

The setup guide says local and private addresses normally resolve to HTTP on the native Bastion port; public domains can resolve to HTTPS. The product overview adds an important deployment boundary: the storage process itself does not terminate TLS. For a public deployment, place it behind a TLS-terminating reverse proxy such as Caddy or Nginx rather than assuming the storage process provides public HTTPS.

Understand what V1 does—and does not—provide

Lioran S3 V1 is described as self-hosted and single-node, with bucket and object semantics and a native REST API. It is not currently a drop-in AWS S3 API compatibility layer. AWS S3 compatibility, lifecycle rules, webhooks, finer-grained policies, clustering, and replication are listed as roadmap items in the product overview, not current capabilities.

The overview also warns that pre-alpha APIs, storage formats, protocol details, SDK behavior, and operational assumptions may change. Treat the driver and the deployment as pre-alpha infrastructure: test upgrades and application behavior against the version and configuration you intend to run.

Media processing is experimental

The media subsystem is identified as experimental. Its listed functions include video transcoding and HLS generation, plus image resizing and conversion; the host needs ffmpeg and ffprobe. These are not presented as stable core storage features.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.