Amazon S3 provides a set of API operations you can perform on Amazon S3 objects and for managing lifecycle configuration on a bucket. Out of these allowed operations, PUT and POST calls require passing of Content-MD5 in header of the request. AWS uses this as a message integrity check to verify that the data is the same data that was originally sent. There are different ways to generate this Content-MD5 value for the data you want to PUT or POST using the API.

Basic flow is: Data –>MD5 checksum (this is Hex output) –> Base64 encoding

Generating the Content-MD5 value using POSTMAN:

>>Add the below script statements in “Pre-request Script” of Postman

var md5checksum = CryptoJS.MD5(""+pm.request.body+"");
base64value = CryptoJS.enc.Base64.stringify(md5checksum);
postman.setGlobalVariable("contentMD5", base64value);

>>Make sure to add Global Variable “contentMD5” and assign it to Content-MD5 in header

>>This will generate the Content-MD5 value and save it in global variable “contentMD5”. Any data added to Body will be picked by the script to generate the md5 and then encoded to base64.


NOTE: The below two strings appear same but will generate different md5 checksum so be sure what you enter in POSTMAN request body is in correct format.

This is different