Doc upload in progress.
This commit is contained in:
46
s3upload.js
Normal file
46
s3upload.js
Normal file
@@ -0,0 +1,46 @@
|
||||
var aws = require("aws-sdk");
|
||||
require("dotenv").config();
|
||||
// Configure aws with your accessKeyId and your secretAccessKey
|
||||
aws.config.update({
|
||||
region: "ca-central-1", // Put your aws region here
|
||||
accessKeyId: process.env.AWSAccessKeyId,
|
||||
secretAccessKey: process.env.AWSSecretKey
|
||||
});
|
||||
|
||||
const S3_BUCKET = process.env.bucket;
|
||||
// Now lets export this function so we can call it from somewhere else
|
||||
|
||||
exports.sign_s3 = (req, res) => {
|
||||
console.log("Hitting bucket: " + S3_BUCKET);
|
||||
const s3 = new aws.S3(); // Create a new instance of S3
|
||||
if (!req.body.fileName || req.body.fileType) {
|
||||
res.json({ success: false, error: "fileName or fileType missing." });
|
||||
console.log("Error: fileName or fileType missing. ");
|
||||
return;
|
||||
}
|
||||
|
||||
const fileName = req.body.fileName;
|
||||
const fileType = req.body.fileType;
|
||||
// Set up the payload of what we are sending to the S3 api
|
||||
const s3Params = {
|
||||
Bucket: S3_BUCKET,
|
||||
Key: fileName,
|
||||
Expires: 500,
|
||||
ContentType: fileType,
|
||||
ACL: "public-read"
|
||||
};
|
||||
// Make a request to the S3 API to get a signed URL which we can use to upload our file
|
||||
s3.getSignedUrl("putObject", s3Params, (err, data) => {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
res.json({ success: false, error: err });
|
||||
}
|
||||
// Data payload of what we are sending back, the url of the signedRequest and a URL where we can access the content after its saved.
|
||||
const returnData = {
|
||||
signedRequest: data,
|
||||
url: `https://${S3_BUCKET}.s3.amazonaws.com/${fileName}`
|
||||
};
|
||||
// Send it all back
|
||||
res.json({ success: true, data: { returnData } });
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user