在这种情况下,加密可以解决

时间:2013-10-30 13:29:12

标签: java encryption documentum

我正在使用EMC Documentum内容管理系统。我试图在他们自己的API的帮助下自动化一些文件导入(将文件移动到CMS存储库)。 (不要因为下一句话而感到恐慌,只读它,因为它的EMC自己的API可能你不知道)为此,我必须首先创建一个IDfFile类型的对象,然后将该对象传递给{{ 1}}执行导入。

我想要做的是在运行时从一台服务器获取文件并立即执行导入操作。 我希望在内存中完成所有这些操作,而不会在磁盘上保存已提取的文件 - 因为这些文件是保密的

但问题是IDfImportNode.add()采用要导入的文件的绝对路径。因此,文件必须物理存在于磁盘上,即使在导入后删除文件,最终也会在磁盘上留下文件痕迹。我猜是否可以使用IdfFile(string)对象,但没有这样的超载。

所以我想知道我是否可以在保存到磁盘或其他任何方式之前加密文件。或者我要求EMC人员提供合适的API方法。

3 个答案:

答案 0 :(得分:2)

如果这些文件真的是保密的,并且你真的想要经历这么多麻烦,那么你应该首先加密它们。

在磁盘上留下痕迹的文件应该是您最不担心的问题,需要对磁盘进行物理访问才能对磁盘执行深度调查以找出文件的内容。更实际的问题是攻击者可以访问服务器并读取这样的文件。

但仍然回答你的问题:

  • 加密可以解决很多问题,但总是考虑它是否值得。
  • 当然,您可以随时向“EMC人员”寻求解决方案,特别是如果您有商业支持

答案 1 :(得分:2)

为了在磁盘上留下文件的痕迹,很容易:加密磁盘。采取像Truecrypt这样的解决方案,加密整个磁盘,安装它,运行程序。保存在磁盘中的所有内容都将被加密,但它对您的程序是透明的(它只会读取和写入设备,如果文件以加密方式存储,则无需担心)。

问题是:

  • 如果某人有权访问您的计算机,他可以阅读这些文件

  • 如果您的计算机遭到黑客攻击并且可以从外部访问,他可以阅读文件

答案 2 :(得分:1)

执行此操作的方法是使用IDfSysObject.setContent()方法。这将是更多的代码,因为您不能使用Import操作便利,但它应该允许您保存流。也许是这样的(但你已经从某个地方获得了流):

File pdfInput = new File("C:\\Rupinder\\MyFile.txt");
byte[] outBytes = new byte[(int)pdfInput.length()];

FileInputStream fileInputStream = new FileInputStream(pdfInput);
fileInputStream.read(outBytes);

ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(outBytes);

IDfSysObject sysObj = (IDfSysObject)session.newObject("c_pdf");
sysObj.setObjectName("testDoc");
sysObj.setContentType("crtext");
sysObj.setTitle("import operation");
sysObj.link("/Temp/Source Folder"); 
sysObj.setContent(out);
sysObj.save();

来源:https://community.emc.com/message/98225