从浏览器上传后解码存储在数据库中的二进制文件
Decoding binary files stored inside a database after being uploaded from a browser
在从将文件存储在数据库中的 CMS 迁移到将文件存储在 AWS S3 中的系统中,除了从 Java(旧的系统)并在 python 中自己从头开始实施,使用 java 代码或 rfc1867 作为参考。
我有包含长串编码文件的数据库转储。
我不是 100% 清楚使用了哪种二进制文件上传编码。但是每种文件类型的第一个字符之间存在一致性。
UEsDBBQA
是大量DOCX文件格式的前8个字符,UEsDBBQABgAIAAAA
是75%以上DOCX文件的前16个字符。
JVBERi0xLj
是许多 PDF 文件的前 10 个字符。
每个允许文件上传的 Web 应用程序框架都必须解码这些...因此这是一个已知问题。但是我找不到用 Python (我选择的语言)或某种命令行解码工具来解码这些字符串的方法...
file
不认识他们。
hachoir
不认识他们。
有没有我可以安装的简单工具,我不在乎它们是用 C、Perl、Python、Ruby、JavaScript 还是 Mabolge,我只想要一个可以将编码后的字符串作为输入(文件,stdin,我不在乎)并输出解码后的原始文件的工具。
或者我是不是对解码这些文件的算法想得太多了,它会比看起来更简单,有人可以告诉我如何使用纯 python 来解码它们吗?
将二进制数据表示为文本的最常用编码算法是Base64。我刚刚对 Java 中的 PDF 文件进行了快速测试,在对它进行 Base64 编码时,我得到了完全相同的 header 字符序列。
byte[] bytes = Files.readAllBytes(Paths.get("/test/test.pdf"));
String base64 = DatatypeConverter.printBase64Binary(bytes);
System.out.println(base64.substring(0, 10)); // JVBERi0xLj
因此,您很可能正在寻找 Base64 解码器。
我不做 Python,所以这里有一个 Google search suggestion and the first Stack Overflow link which appeared in the search results to date: Python base64 data decode。
在从将文件存储在数据库中的 CMS 迁移到将文件存储在 AWS S3 中的系统中,除了从 Java(旧的系统)并在 python 中自己从头开始实施,使用 java 代码或 rfc1867 作为参考。
我有包含长串编码文件的数据库转储。 我不是 100% 清楚使用了哪种二进制文件上传编码。但是每种文件类型的第一个字符之间存在一致性。
UEsDBBQA
是大量DOCX文件格式的前8个字符,UEsDBBQABgAIAAAA
是75%以上DOCX文件的前16个字符。JVBERi0xLj
是许多 PDF 文件的前 10 个字符。
每个允许文件上传的 Web 应用程序框架都必须解码这些...因此这是一个已知问题。但是我找不到用 Python (我选择的语言)或某种命令行解码工具来解码这些字符串的方法...
file
不认识他们。
hachoir
不认识他们。
有没有我可以安装的简单工具,我不在乎它们是用 C、Perl、Python、Ruby、JavaScript 还是 Mabolge,我只想要一个可以将编码后的字符串作为输入(文件,stdin,我不在乎)并输出解码后的原始文件的工具。
或者我是不是对解码这些文件的算法想得太多了,它会比看起来更简单,有人可以告诉我如何使用纯 python 来解码它们吗?
将二进制数据表示为文本的最常用编码算法是Base64。我刚刚对 Java 中的 PDF 文件进行了快速测试,在对它进行 Base64 编码时,我得到了完全相同的 header 字符序列。
byte[] bytes = Files.readAllBytes(Paths.get("/test/test.pdf"));
String base64 = DatatypeConverter.printBase64Binary(bytes);
System.out.println(base64.substring(0, 10)); // JVBERi0xLj
因此,您很可能正在寻找 Base64 解码器。
我不做 Python,所以这里有一个 Google search suggestion and the first Stack Overflow link which appeared in the search results to date: Python base64 data decode。