Может ли шифрование быть решением в этой ситуации?
Я использую систему управления контентом EMC Documentum. Я пытаюсь автоматизировать импорт некоторых файлов (перемещение файлов в репозиторий CMS) с помощью их собственного API. (Не паникуйте по этому следующему предложению, просто прочитайте его, поскольку его собственный API-интерфейс EMC, о котором вы, возможно, не подозреваете) Для этого я должен сначала создать объект типа IDfFile
а затем передать этот объект IDfImportNode.add()
который выполняет импорт.
Я хочу получить файл во время выполнения с одного сервера и немедленно выполнить операцию импорта. Я хочу сделать все это в памяти, не сохраняя извлеченные файлы на диске - так как эти файлы являются конфиденциальными.
Однако проблема в том, что IdfFile(string)
принимает абсолютный путь к файлу для импорта. Таким образом, файл должен существовать на диске физически, что в конечном итоге оставит следы файлов на диске даже после того, как я удалю файлы после импорта. Я угадал, если это может занять Stream
объект, но нет такой перегрузки.
Поэтому я хочу знать, смогу ли я зашифровать файлы перед сохранением на диск или любым другим способом. Или, что я прошу сотрудников EMC предоставить подходящий метод API.
3 ответа
Способ сделать это состоит в том, чтобы использовать IDfSysObject.setContent()
метод. Это будет больше кода, потому что вы не можете использовать удобства операции импорта, но это должно позволить вам сохранить поток. Может быть, что-то вроде этого (но у вас уже будет поток откуда-то):
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
Оставить следы файла на диске очень просто: зашифруйте диск. Возьмите какое-нибудь решение, например Truecrypt, зашифруйте весь диск, смонтируйте его, запустите вашу программу. Все, что сохранено на диске, будет зашифровано, но оно будет прозрачным для вашей программы (оно будет только читать и записывать на устройство и не будет беспокоиться, если файл хранится в зашифрованном виде или нет).
Проблемы:
если у кого-то есть доступ к вашему компьютеру, когда он это делает, он может читать файлы
если ваш компьютер каким-то образом взломан и может быть доступен извне, он может читать файлы
Если файлы действительно конфиденциальны, и вы действительно хотите пережить так много проблем, чтобы сохранить их таким образом, вы должны были зашифровать их в первую очередь.
Файлы, оставляющие следы на диске, должны вызывать наименьшее беспокойство. Для того, чтобы выяснить, что это за файлы, нужен физический доступ к диску, чтобы глубоко его изучить. Гораздо более реалистичные проблемы - злоумышленники получают доступ к серверу и читают подобные файлы.
Но все же ответить на ваш вопрос:
- Шифрование может стать решением многих проблем, но всегда думайте, стоит ли оно того.
- Конечно, вы всегда можете обратиться к "сотрудникам EMC" за решением этой проблемы, особенно если у вас есть коммерческая поддержка.