@biorate/minio
v2.1.3
Published
Minio connector
Readme
@biorate/minio
MinIO (S3-compatible) connector — connection manager for the official minio JavaScript client.
Features
- Auto-connect — creates
Clientinstance on@init()via config namespaceMinio. - Connection verification — calls
listBuckets()to verify credentials and connectivity. - Typed errors —
MinioCantConnectErroron connection failure.
Installation
pnpm add @biorate/minioRequires @biorate/connector, @biorate/inversion, @biorate/config, minio.
Quick start
import { inject, container, Types, Core } from '@biorate/inversion';
import { IConfig, Config } from '@biorate/config';
import { MinioConnector } from '@biorate/minio';
class Root extends Core() {
@inject(MinioConnector) public connector: MinioConnector;
}
container.bind<IConfig>(Types.Config).to(Config).inSingletonScope();
container.bind<MinioConnector>(MinioConnector).toSelf().inSingletonScope();
container.bind<Root>(Root).toSelf().inSingletonScope();
container.get<IConfig>(Types.Config).merge({
Minio: [
{
name: 'storage',
options: {
endPoint: 'localhost',
port: 9000,
accessKey: 'admin',
secretKey: 'minioadmin',
useSSL: false,
},
},
],
});
(async () => {
const root = container.get<Root>(Root);
await root.$run();
await root.connector.current!.makeBucket('test', 'test');
await root.connector.current!.putObject(
'test', 'hello.txt', Buffer.from('Hello world!'),
);
root.connector.current!.getObject('test', 'hello.txt', (_e, stream) => {
let data = '';
stream.on('data', (chunk) => (data += chunk.toString()));
stream.on('end', () => console.log(data)); // 'Hello world!'
});
})();API Reference
MinioConnector
| Member | Type | Description |
|------------------|-------------------------------------------|------------------------------------------|
| namespace | 'Minio' | Config key for connection definitions. |
| connect(config) | (config) => Promise<IMinioConnection> | Creates Client and verifies connectivity. |
Config
interface IMinioConfig extends IConnectorConfig {
options: ClientOptions; // endPoint, port, accessKey, secretKey, useSSL, region, etc.
}Errors
| Error | Condition |
|------------------------------|----------------------------------------------|
| MinioCantConnectError | new Client() or listBuckets() fails. |
Architecture
MinioConnector extends Connector<IMinioConfig, IMinioConnection>
│
├── namespace = 'Minio'
├── connect(config) → new Client(config.options)
│ └── await connection.listBuckets() // verify
└── connection is a minio.ClientLearn
- Documentation can be found here - docs.
Release History
See the CHANGELOG
