1 | import { Bucket, newBucket } from './bucket';
|
2 | import { Driver } from './driver';
|
3 | import { getS3Driver, S3DriverCfg } from './driver-aws';
|
4 | import { getGsDriver, GsDriverCfg } from './driver-gcp';
|
5 | import { BucketFile } from './types';
|
6 |
|
7 | export { signUrl, SignUrlOptions, urlSigner } from './url-signer';
|
8 | export { Bucket, BucketFile };
|
9 |
|
10 |
|
11 |
|
12 | export async function getBucket(rawCfg: any): Promise<Bucket> {
|
13 |
|
14 |
|
15 | const driver = await getDriver(rawCfg);
|
16 | const bucket = newBucket({ driver });
|
17 | return bucket;
|
18 |
|
19 | }
|
20 |
|
21 |
|
22 | async function getDriver(rawCfg: any): Promise<Driver> {
|
23 | if (rawCfg.project_id) {
|
24 | return getGsDriver(rawCfg as GsDriverCfg);
|
25 | } else if (rawCfg.access_key_id) {
|
26 | return getS3Driver(rawCfg as S3DriverCfg);
|
27 | }
|
28 | else {
|
29 | throw new Error(`bucket config does not seem to be valid (only support Gcp and Aws for now)`);
|
30 |
|
31 | }
|
32 | }
|
33 |
|