p5.js-web-editor/server/controllers/aws.controller.js

31 lines
746 B
JavaScript

import uuid from 'node-uuid';
import policy from 's3-policy';
function getExtension(filename) {
const i = filename.lastIndexOf('.');
return (i < 0) ? '' : filename.substr(i);
}
export function signS3(req, res) {
const fileExtension = getExtension(req.body.name);
const filename = uuid.v4() + fileExtension;
const acl = 'public-read';
const p = policy({
acl,
secret: process.env.AWS_SECRET_KEY,
length: 5000000, // in bytes?
bucket: process.env.S3_BUCKET,
key: filename,
expires: new Date(Date.now() + 60000),
});
const result = {
AWSAccessKeyId: process.env.AWS_ACCESS_KEY,
key: filename,
policy: p.policy,
signature: p.signature
};
return res.json(result);
}
export default signS3;