This library allows you to interact with major object storage backends (e.g., Amazon S3) using a unified interface.
Releases are automatically pushed to NPM. For example, to get the latest release, run:
npm install @relaycorp/object-storage
| 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 | 
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.
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)
  }
}
The API documentation can be found on docs.relaycorp.tech.
We love contributions! If you haven't contributed to a Relaycorp project before, please take a minute to read our guidelines first.
Generated using TypeDoc