Options
All
  • Public
  • Public/Protected
  • All
Menu

@relaycorp/object-storage

This library allows you to interact with major object storage backends (e.g., Amazon S3) using a unified interface.

Install

Releases are automatically pushed to NPM. For example, to get the latest release, run:

npm install @relaycorp/object-storage

Supported backends

Backend Name SDK used internally Access/secret key support
Amazon S3 s3 AWS Optional
Google Cloud Storage (GCS) gcs GCP Unsupported. Use alternative authentication methods instead, like workload identity.
Minio minio AWS Required

Supported operations

  • Get object (along with its metadata).
  • Create/update object (along with its metadata).
  • Delete object.
  • List objects under a given prefix. Pagination is handled automatically: We return an iterable and retrieve the next page lazily.

We welcome PRs to support additional operations, as long as each new operation is supported across all backends in a normalised way, and has unit and functional tests.

Example

import { initObjectStoreClient } from '@relaycorp/object-storage';

async function main(): Promise<void> {
  const client = initObjectStoreClient(
    process.env.STORE_BACKEND,
    process.env.STORE_ENDPOINT,
    process.env.STORE_ACCESS_KEY,
    process.env.STORE_SECRET_KEY,
  );

  for await (const objectKey of client.listObjectKeys("prefix/", process.env.STORE_BUCKET)) {
    console.log("- ", objectKey)
  }
}

API documentation

The API documentation can be found on docs.relaycorp.tech.

Contributing

We love contributions! If you haven't contributed to a Relaycorp project before, please take a minute to read our guidelines first.

Index

Type aliases

AdapterType

AdapterType: "gcs" | "minio" | "s3"

Functions

initObjectStoreClient

  • initObjectStoreClient(type: AdapterType, endpoint?: string, accessKeyId?: string, secretAccessKey?: string, tlsEnabled?: boolean): ObjectStoreClient
  • Return object store client for the specified type.

    Parameters

    • type: AdapterType
    • Optional endpoint: string
    • Optional accessKeyId: string
    • Optional secretAccessKey: string
    • tlsEnabled: boolean = true

    Returns ObjectStoreClient

Legend

  • Property
  • Method
  • Inherited constructor

Generated using TypeDoc