S3 configuration for minio (#213)
* 🛠️S3 configuraiton for minio have to have strict types
This commit is contained in:
@@ -21,7 +21,7 @@ export class Configuration implements TdriveServiceConfiguration {
|
||||
if (name) {
|
||||
value =
|
||||
this.serviceConfiguration &&
|
||||
(this.serviceConfiguration.get(name) || configuration.get(name));
|
||||
(this.serviceConfiguration.get<T>(name) || configuration.get<T>(name));
|
||||
}
|
||||
} catch {
|
||||
value = defaultValue || null;
|
||||
|
||||
@@ -3,14 +3,22 @@ import { logger } from "../../../../../../core/platform/framework";
|
||||
import { Readable } from "stream";
|
||||
import { StorageConnectorAPI, WriteMetadata } from "../../provider";
|
||||
|
||||
export type S3Configuration = Minio.ClientOptions & { bucket: string };
|
||||
export type S3Configuration = {
|
||||
bucket: string;
|
||||
region: string;
|
||||
endPoint: string;
|
||||
port: number;
|
||||
useSSL: boolean;
|
||||
accessKey: string;
|
||||
secretKey: string;
|
||||
};
|
||||
|
||||
export default class S3ConnectorService implements StorageConnectorAPI {
|
||||
client: Minio.Client;
|
||||
minioConfiguration: S3Configuration;
|
||||
|
||||
constructor(S3Configuration: S3Configuration) {
|
||||
this.client = new Minio.Client({ ...S3Configuration });
|
||||
this.client = new Minio.Client(S3Configuration);
|
||||
this.minioConfiguration = S3Configuration;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { Stream, Readable } from "stream";
|
||||
import Multistream from "multistream";
|
||||
import { Consumes, logger, TdriveService } from "../../framework";
|
||||
import LocalConnectorService, { LocalConfiguration } from "./connectors/local/service";
|
||||
import S3ConnectorService, { S3Configuration } from "./connectors/S3/service";
|
||||
import S3ConnectorService from "./connectors/S3/service";
|
||||
import StorageAPI, {
|
||||
DeleteOptions,
|
||||
ReadOptions,
|
||||
@@ -37,7 +37,15 @@ export default class StorageService extends TdriveService<StorageAPI> implements
|
||||
const type = this.getConnectorType();
|
||||
if (type === "S3") {
|
||||
logger.info("Using 'S3' connector for storage.");
|
||||
return new S3ConnectorService(this.configuration.get<S3Configuration>("S3"));
|
||||
return new S3ConnectorService({
|
||||
bucket: this.configuration.get<string>("S3.bucket"),
|
||||
region: this.configuration.get<string>("S3.region"),
|
||||
endPoint: this.configuration.get<string>("S3.endPoint"),
|
||||
port: Number(this.configuration.get<number>("S3.port")),
|
||||
useSSL: Boolean(this.configuration.get<boolean>("S3.useSSL")),
|
||||
accessKey: this.configuration.get<string>("S3.accessKey"),
|
||||
secretKey: this.configuration.get<string>("S3.secretKey"),
|
||||
});
|
||||
}
|
||||
logger.info(
|
||||
`Using 'local' connector for storage${
|
||||
|
||||
Reference in New Issue
Block a user