_uploadFile()

in source/custom-resource/lib/s3-helper.js [161:201]


    _uploadFile(filelist, index, destS3Bucket, sourceS3prefix) {
        let _self = this;
        return new Promise((resolve, reject) => {

            if (filelist.length > index) {
                let params = {
                    Bucket: destS3Bucket,
                    Key: filelist[index],
                    CopySource: [sourceS3prefix, filelist[index]].join('/'),
                    MetadataDirective: 'REPLACE'
                };

                params.ContentType = this._setContentType(filelist[index]);
                params.Metadata = {
                    'Content-Type': params.ContentType
                };
                console.log(params);
                let s3 = new AWS.S3({
                    signatureVersion: 'v4'
                });
                s3.copyObject(params, function(err, data) {
                    if (err) {
                        console.log(err);
                        reject(`error copying ${sourceS3prefix}/${filelist[index]}\n${err}`);
                    } else {
                        console.log(`${sourceS3prefix}/${filelist[index]} uploaded successfully`);
                        let _next = index + 1;
                        _self._uploadFile(filelist, _next, destS3Bucket, sourceS3prefix).then((resp) => {
                            resolve(resp);
                        }).catch((err2) => {
                            reject(err2);
                        });
                    }
                });
            } else {
                resolve(`${index} files copied`);
            }

        });

    }