kura-s3
Version:
The FileSystem API abstraction library, AWS S3 Plugin
31 lines (27 loc) • 818 B
text/typescript
import { S3 } from "aws-sdk";
import { AbstractAccessor, AbstractLocalFileSystem, normalizePath } from "kura";
import { S3Accessor } from "./S3Accessor";
import { S3FileSystemOptions } from "./S3FileSystemOption";
export class S3LocalFileSystem extends AbstractLocalFileSystem {
private rootDir: string;
constructor(
private config: S3.ClientConfiguration,
private bucket: string,
roorDir: string,
private s3Options?: S3FileSystemOptions
) {
super(s3Options);
this.rootDir = normalizePath(roorDir);
}
protected createAccessor(): Promise<AbstractAccessor> {
return new Promise<S3Accessor>((resolve) => {
const accessor = new S3Accessor(
this.config,
this.bucket,
this.rootDir,
this.s3Options
);
resolve(accessor);
});
}
}