UNPKG

@edools/epm

Version:

Edools apps management tool

45 lines (37 loc) 1.02 kB
import { createClient } from 's3'; import Q from 'q'; class Source { constructor (file, release, config) { this.file = file; this.release = release; this.config = config; this.client = this.createS3Client(config); } get remoteKey () { let release = this.release; return `libs/edools-school/${release.app}/${release.version}/${this.file.relative}`; } createS3Client (config) { return createClient({ s3Options: config.s3Options }); } upload () { let deferred = Q.defer(); let uploader = this.client.uploadFile({ localFile: this.file.base + this.file.relative, s3Params: { Bucket: this.config.s3Options.bucket, Key: this.remoteKey, ACL: 'public-read' } }); uploader.on('progress', () => { deferred.notify(uploader.progressAmount); }); uploader.on('error', deferred.reject); uploader.on('end', deferred.resolve); return deferred.promise; } } export default Source;