2013-10-30 28 views
1

我正在使用EMC Documentum内容管理系统。我试图通过自己的API自动化一些文件导入(将文件移动到CMS存储库)。 (请不要惊慌,请阅读它,因为您可能不知道EMC自己的API)为此,我必须先创建一个IDfFile类型的对象,然后将该对象传递给执行导入的IDfImportNode.add()在这种情况下,加密可以解决问题

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

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

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

+0

加密的文件保存到光盘的工作,没有人说你”重新隐藏文件以访问该内存。再次阅读后,我看到你没有打开该文件,并且一些库代码是。您需要以某种方式解密数据 – Cruncher

+0

是否可以使用'IDfFile'将'IDfInputStreamContent'传递给'IDfImportNode.add()'。这样你就不必将它保存到光盘。 (我不知道你使用的系统,但看看首先想到的文档)。 –

回答

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

+0

是的,这似乎是确切的事情,但现在我意识到,实际上我使用EWS Java API获取的交换邮件的机密文件是由EWS API本身定义的EmailMessage类型,它不是可序列化的,所以我不是能够将它们转换为'ByteArrayOutputStream'。我提出了另一个线程[这里](http://stackoverflow.com/questions/19704462/converting-emailmessage-to-bytearrayoutputstream)。如果您能够帮助并对不明确处理Exchange邮件的事实感到抱歉,请参阅此处。 – Mahesha999

+0

所以是的,这听起来像这回答了这个问题,但不是你的新序列化问题。既然你为那个(好)开了一个新问题,我建议你接受这个问题的答案,或者删除它,因为问题现在已经改变了。 –

2

如果这些文件是真正的机密文件,并且您真的想要经过这么多麻烦来保持它们,那么您应该首先对它们进行加密。

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

但仍然回答你的问题:

  • 加密可能是很多事情的解决方案,但始终认为,如果它是值得的。
  • 你总是可以问:“EMC的人”为解决这一点,当然,特别是如果你有离开磁盘上的文件的痕迹商业支持
2

,很容易:加密的磁盘。采取像Truecrypt这样的解决方案,加密整个磁盘,装载它,运行你的程序。保存在磁盘中的所有内容都将被加密,但它对您的程序将是透明的(它只会读取和写入设备,如果文件被加密存储则不必担心)。

的问题是:

  • 如果有人访问你的计算机是这样做的同时,他可以读取文件

  • 如果你的电脑是某种黑客攻击,并且可以从访问外面,他可以读取文件