即使在 Postman 中获得成功响应,文件内容也无法正确解码

问题描述

我正在尝试以下与 Documentum REST API 调用相关的工作。我相信问题更在于解码 base64。我觉得是...

客户端应用程序 -> Documentum API 调用以保存文档

  1. 客户端应用程序调用 API 来“创建”文档 -- 工作正常。

  2. 客户端应用程序然后调用一个 API 来设置在步骤 1 中创建的文件内容。 文档内容作为“base64”格式的字符串(例如 - UkVRMDA3NTYwOC8gQ0hHMDA0MDkzNyAgLSB==)发送到 Documentum API - 工作正常

  3. 客户端应用程序从另一个 API 获取文档并取回与“base64”格式字符串具有相同内容的文档。 - 工作正常

现在,在第 3 步,当我必须获取文档时,我希望以 utf-8 格式返回内容。我尝试将文件内容(base64 格式的字符串)解码为 utf-8 可读格式(格式为 base64 编码之前的实际文件内容)。

我在 Postman 上尝试了以下代码作为“测试”脚本,但在 Postman 控制台上没有收到任何错误

var CryptoJS = require("crypto-js");
var plainText=pm.response.json().attachments;  \\ Taking json response of API call 
//console.log(plainText); \\Gives back base64 formatted which was set as document contents
intermediate = CryptoJS.enc.Base64.parse(plainText); \\Doing parse
var response_txt = CryptoJS.enc.Utf8.parse(intermediate).toString(); \\Changing to utf-8
console.log(response_txt);

当我在 Postman 上执行“发送和下载”时,文件正在下载,但是当我打开文档时出现以下错误。 “Adobe Acrobat 无法打开文档,因为文件类型不受支持文件已损坏(...并且未正确解码)”

我不明白我做错了什么。 [1]:https://i.stack.imgur.com/FqGP7.png

我想要的只是当我将文档 api 调用提取到 Documentum 时,我希望文档以可读格式返回。

我需要以下指导: js 脚本(如上所示)是否存在问题以解码 Postman 上的内容? 要么 在对 Documentum 进行 API 调用时,我需要做任何单独的事情吗?

谢谢

解决方法

不确定你在这里做什么。 DCTM REST 将公开指向内容(二进制)的直接 ACS 链接或直接向您提供存储在 DCTM 中的文件,您无需对编码进行任何操作,因为您很可能会通过更改编码来破坏文件