我正在与Node.js和GCP Data Loss Prevention合作,试图在显示PDF之前对其敏感数据进行编辑。GCP在这里有很棒的文档
从本质上讲,你可以拉入nodejs库并运行这个
const fileBytes = Buffer.from(fs.readFileSync(filepath)).toString('base64');
// Construct image redaction request
const request = {
parent: `projects/${projectId}/locations/global`,
byteItem: {
type: fileTypeConstant,
data: fileBytes,
},
inspectConfig: {
minLikelihood: minLikelihood,
infoTypes: infoTypes,
},
imageRedactionConfigs: imageRedactionConfigs,
};
// Run image redaction request
const [response] = await dlp.redactImage(request);
const image = response.redactedImage;
因此,通常情况下,我会将文件作为缓冲区,然后像上面那样将其传递给DLP函数。但是,我不再将我们的文件作为缓冲区。由于许多文件都非常大,我们现在从FilesStorage中以流的形式获取它们,就像一样
return FilesStorage.getFileStream(metaFileInfo1, metaFileInfo2, metaFileInfo3, fileId)
.then(stream => {
return {fileInfo, stream};
})
问题是,是否可以在流而不是缓冲区上执行DLP图像编辑?如果是,如何?我发现了一些其他问题,说你可以用CCD_ 1和GCP自己的文档提到";流";。但是,我已经尝试将.getFileStream
返回的流传递到上面的byteItem['data']属性中,但它不起作用。
因此,将流分块到适当大小的缓冲区中在这里效果最好。似乎有很多方法可以从流中构建缓冲区,您可以在这里使用。
潜在相关性:将流转换为缓冲区?
(原生流接口是一个很好的功能请求,只是还没有。(