UNPKG

866 BPlain TextView Raw
1import { Bucket, newBucket } from './bucket';
2import { Driver } from './driver';
3import { getS3Driver, S3DriverCfg } from './driver-aws';
4import { getGsDriver, GsDriverCfg } from './driver-gcp';
5import { BucketFile } from './types';
6
7export { signUrl, SignUrlOptions, urlSigner } from './url-signer';
8export { Bucket, BucketFile };
9
10
11
12export async function getBucket(rawCfg: any): Promise<Bucket> {
13
14 // if has .project_id, assume GcpBucket
15 const driver = await getDriver(rawCfg);
16 const bucket = newBucket({ driver });
17 return bucket;
18
19}
20
21
22async 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