Uploading an image in s3 using nodejs
I'm trying to upload an image to s3 using node js. I'm using multer-s3.
When I try to open the image from s3 it shows"Preview not available.Your file may be corrupted".I tried fs too but still the same result.
services/file-upload.js
const s3Config = new aws.S3({
secretAccessKey: config.awsCredentials.secretAccessKey,
accessKeyId: config.awsCredentials.accessKeyId,
region: config.awsCredentials.region,
bucket: 'bucketname',
});
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
} else {
cb(null, false)
}
}
const multerS3Config = multerS3({
s3: s3Config,
bucket: 'bucketname',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
console.log(file)
cb(null, new Date().toISOString() + '-' + file.originalname)
}
});
const upload = multer({
storage: multerS3Config,
fileFilter: fileFilter,
limits: {
fileSize: 1024 * 1024 * 5 // we are allowing only 5 MB files
}
})
controller.js
const upload = require('../services/file-upload');
var Uploader = require('s3-image-uploader');
const singleUpload = upload.single('file');
singleUpload(req, res, function(err) {
if (err) {
return res.status(422).send({errors: [{title: 'Image Upload Error', detail: err.message}] });
}
return res.json({'imageUrl': "uploaded successfully"});
});
node.js amazon-s3
|
show 8 more comments
I'm trying to upload an image to s3 using node js. I'm using multer-s3.
When I try to open the image from s3 it shows"Preview not available.Your file may be corrupted".I tried fs too but still the same result.
services/file-upload.js
const s3Config = new aws.S3({
secretAccessKey: config.awsCredentials.secretAccessKey,
accessKeyId: config.awsCredentials.accessKeyId,
region: config.awsCredentials.region,
bucket: 'bucketname',
});
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
} else {
cb(null, false)
}
}
const multerS3Config = multerS3({
s3: s3Config,
bucket: 'bucketname',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
console.log(file)
cb(null, new Date().toISOString() + '-' + file.originalname)
}
});
const upload = multer({
storage: multerS3Config,
fileFilter: fileFilter,
limits: {
fileSize: 1024 * 1024 * 5 // we are allowing only 5 MB files
}
})
controller.js
const upload = require('../services/file-upload');
var Uploader = require('s3-image-uploader');
const singleUpload = upload.single('file');
singleUpload(req, res, function(err) {
if (err) {
return res.status(422).send({errors: [{title: 'Image Upload Error', detail: err.message}] });
}
return res.json({'imageUrl': "uploaded successfully"});
});
node.js amazon-s3
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00
|
show 8 more comments
I'm trying to upload an image to s3 using node js. I'm using multer-s3.
When I try to open the image from s3 it shows"Preview not available.Your file may be corrupted".I tried fs too but still the same result.
services/file-upload.js
const s3Config = new aws.S3({
secretAccessKey: config.awsCredentials.secretAccessKey,
accessKeyId: config.awsCredentials.accessKeyId,
region: config.awsCredentials.region,
bucket: 'bucketname',
});
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
} else {
cb(null, false)
}
}
const multerS3Config = multerS3({
s3: s3Config,
bucket: 'bucketname',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
console.log(file)
cb(null, new Date().toISOString() + '-' + file.originalname)
}
});
const upload = multer({
storage: multerS3Config,
fileFilter: fileFilter,
limits: {
fileSize: 1024 * 1024 * 5 // we are allowing only 5 MB files
}
})
controller.js
const upload = require('../services/file-upload');
var Uploader = require('s3-image-uploader');
const singleUpload = upload.single('file');
singleUpload(req, res, function(err) {
if (err) {
return res.status(422).send({errors: [{title: 'Image Upload Error', detail: err.message}] });
}
return res.json({'imageUrl': "uploaded successfully"});
});
node.js amazon-s3
I'm trying to upload an image to s3 using node js. I'm using multer-s3.
When I try to open the image from s3 it shows"Preview not available.Your file may be corrupted".I tried fs too but still the same result.
services/file-upload.js
const s3Config = new aws.S3({
secretAccessKey: config.awsCredentials.secretAccessKey,
accessKeyId: config.awsCredentials.accessKeyId,
region: config.awsCredentials.region,
bucket: 'bucketname',
});
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true)
} else {
cb(null, false)
}
}
const multerS3Config = multerS3({
s3: s3Config,
bucket: 'bucketname',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
console.log(file)
cb(null, new Date().toISOString() + '-' + file.originalname)
}
});
const upload = multer({
storage: multerS3Config,
fileFilter: fileFilter,
limits: {
fileSize: 1024 * 1024 * 5 // we are allowing only 5 MB files
}
})
controller.js
const upload = require('../services/file-upload');
var Uploader = require('s3-image-uploader');
const singleUpload = upload.single('file');
singleUpload(req, res, function(err) {
if (err) {
return res.status(422).send({errors: [{title: 'Image Upload Error', detail: err.message}] });
}
return res.json({'imageUrl': "uploaded successfully"});
});
node.js amazon-s3
node.js amazon-s3
asked Nov 14 '18 at 11:18
TharaThara
62
62
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00
|
show 8 more comments
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00
|
show 8 more comments
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53298996%2fuploading-an-image-in-s3-using-nodejs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53298996%2fuploading-an-image-in-s3-using-nodejs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Is the file is greater than 5MB?
– Sayed Mohd Ali
Nov 14 '18 at 12:30
no it is less than 5MB
– Thara
Nov 14 '18 at 12:41
Previously I was having the same problem with file uploading on Node.js using Multer and fs but it is for the Angular.js and Node.js RestAPI. I think it may also help you out with S3. You need to add transformRequest: follow this link for explaination stackoverflow.com/questions/39284412/…
– Sayed Mohd Ali
Nov 14 '18 at 12:48
if possible can you share the code.it would be a great help
– Thara
Nov 14 '18 at 12:52
when I used this library it worked fine with me without any error. clone github.com/rahil471/file-upload-with-angularjs-and-nodejs.git
– Sayed Mohd Ali
Nov 14 '18 at 13:00