· 6 years ago · Aug 12, 2019, 11:26 PM
1import AWS from "aws-sdk/global";
2import S3 from "aws-sdk/clients/s3";
3
4export const IMAGE_URL = `${process.env.REACT_APP_ASSETS_BUCKET}`;
5export const S3_NAME = `${process.env.REACT_APP_ASSETS_BUCKET_NAME}`;
6
7export async function Upload(folder, file) {
8 const creds = {
9 bucket: `${S3_NAME}/${folder}`,
10 access_key: "access_key",
11 secret_key: "secret_key"
12 };
13
14 if (file === null) {
15 return null;
16 }
17
18 const extension = file.type.split("/")[1];
19 const name = file.name.split(".")[0];
20 const fileName = `${name}-${new Date().getTime()}.${extension}`;
21
22 AWS.config.update({
23 accessKeyId: creds.access_key,
24 secretAccessKey: creds.secret_key
25 });
26 AWS.config.region = "us-east-1";
27
28 const bucket = new S3({ params: { Bucket: creds.bucket, Key: fileName } });
29 const params = {
30 Key: fileName,
31 ContentType: file.type,
32 Body: file,
33 ServerSideEncryption: "AES256"
34 };
35
36 await bucket.putObject(params).promise();
37 return fileName;
38}