aws-s3-react
Version:
S3Client - A Javascript Library for AWS S3 File Upload
3 lines (2 loc) • 1.68 kB
JavaScript
var e,t=(e=require("short-uuid"))&&"object"==typeof e&&"default"in e?e.default:e,r=function(e){this.config=e};r.prototype.uploadFile=function(e,r){try{var o=this;!function(e,t){if(null===e.bucketName||""===e.bucketName)throw new Error("Your bucketName cannot be empty ");if(null===e.region||""===e.region)throw new Error("Must provide a valide region in order to use your bucket");if(null===e.accessKeyId||""===e.accessKeyId)throw new Error("Must provide accessKeyId");if(null===e.secretAccessKey||""===e.secretAccessKey)throw new Error("Must provide secretAccessKey");if(!t)throw new Error("File cannot be empty")}(o.config,e);var i=new FormData,s=e.type.split("/")[1],n=(r||t.generate())+"."+s,c=(a=o.config).s3Url&&""!==a.s3Url?a.s3Url:function(e){var t=e.bucketName,r=e.region,o=r.split("-")[0];switch(o){case"cn":return"https://"+t+".s3."+r+".amazonaws.com."+o;default:return"https://"+t+".s3-"+r+".amazonaws.com"}}(a);return i.append("file",e),Promise.resolve(fetch(c+n,{method:"PUT",body:e})).then(function(e){return e.ok?Promise.resolve({bucket:o.config.bucketName,key:""+n,location:c+"/"+(o.config.dirName?o.config.dirName+"/":"")+n,status:e.status}):Promise.reject(e)})}catch(e){return Promise.reject(e)}var a},r.prototype.deleteFile=function(e){try{return Promise.resolve(fetch("https://"+this.config.bucketName+".s3"+(this.config.region?"-"+this.config.region:"")+".amazonaws.com/"+(this.config.dirName?this.config.dirName+"/":"")+e,{method:"delete"})).then(function(t){return t.ok?Promise.resolve({ok:t.ok,status:t.status,message:"File Deleted",fileName:e}):Promise.reject(t)})}catch(e){return Promise.reject(e)}},module.exports=r;
//# sourceMappingURL=aws-s3.js.map