I have a JPEG buffer which uploads and downloads successfully from S3. However, I'm trying to send it over the Messenger API, and when it's accessed programmatically Messenger throws errors because according to the S3 console, the actual Content-Type
of the image is application/octet-stream
.
My manually entered metadata appears under x-amz-meta-content-type
. According to the AWS documentation, this is the default behavior. How might I override it to get image/jpeg
under Content-Type
?
My code:
var s3 = new AWS.S3();
var params = {
Body: buffer,
Bucket: <bucket>,
Key: <key>,
Metadata: {
'Content-Type': 'image/jpeg'
}
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
}
})
Don't set it in the Metadata
section, that's only for properties that will be prefixed with x-amz-meta
. There is a ContentType
parameter at the main level, like so:
var s3 = new AWS.S3();
var params = {
Body: buffer,
Bucket: <bucket>,
Key: <key>,
ContentType: 'image/jpeg'
};
s3.putObject(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log(data);
}
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With