n8n-nodes-cloudinary
Version:
The official Cloudinary n8n node - upload media, update asset tags and metadata, and more
36 lines • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createMultipartBody = exports.generateCloudinarySignature = void 0;
const sha256_utils_1 = require("./sha256.utils");
const generateCloudinarySignature = (params, apiSecret) => {
const { signature, api_key, file, ...paramsToSign } = params;
const sortedParams = Object.keys(paramsToSign)
.sort()
.map((key) => `${key}=${paramsToSign[key]}`)
.join('&');
const stringToSign = `${sortedParams}${apiSecret}`;
return (0, sha256_utils_1.sha256)(stringToSign);
};
exports.generateCloudinarySignature = generateCloudinarySignature;
const createMultipartBody = (fields, fileData, fileName, mimeType) => {
const boundary = `----formdata-n8n-${Math.random().toString(16).slice(2)}`;
const CRLF = '\r\n';
let body = '';
for (const [name, value] of Object.entries(fields)) {
body += `--${boundary}${CRLF}`;
body += `Content-Disposition: form-data; name="${name}"${CRLF}`;
body += CRLF;
body += value;
body += CRLF;
}
body += `--${boundary}${CRLF}`;
body += `Content-Disposition: form-data; name="file"; filename="${fileName}"${CRLF}`;
body += `Content-Type: ${mimeType}${CRLF}`;
body += CRLF;
const textBuffer = Buffer.from(body, 'utf8');
const endBuffer = Buffer.from(`${CRLF}--${boundary}--${CRLF}`, 'utf8');
const finalBody = Buffer.concat([textBuffer, fileData, endBuffer]);
return { body: finalBody, boundary };
};
exports.createMultipartBody = createMultipartBody;
//# sourceMappingURL=cloudinary.utils.js.map