日志服务将日志投递到OSS时,支持通过snappy压缩OSS文件。投递成功后,您可以通过C++ Lib、Java Lib、Python Lib和Linux环境解压工具等方式解压OSS文件。
使用C++ Lib解压缩
在snappy页面下载Lib,执行Snappy.Uncompress方法解压。
使用Java Lib解压缩
下载xerial snappy-java,使用Snappy.Uncompress或Snappy.SnappyInputStream解压缩,不支持SnappyFramedInputStream。
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.0.4.1</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
-
Snappy.Uncompress
String fileName = "C:\\我的下载\\36_1474212963188600684_4451886.snappy"; RandomAccessFile randomFile = new RandomAccessFile(fileName, "r"); int fileLength = (int) randomFile.length(); randomFile.seek(0); byte[] bytes = new byte[fileLength]; int byteread = randomFile.read(bytes); System.out.println(fileLength); System.out.println(byteread); byte[] uncompressed = Snappy.uncompress(bytes); String result = new String(uncompressed, "UTF-8"); System.out.println(result);
-
Snappy.SnappyInputStream
String fileName = "C:\\我的下载\\36_1474212963188600684_4451886.snappy"; SnappyInputStream sis = new SnappyInputStream(new FileInputStream(fileName)); byte[] buffer = new byte[4096]; int len = 0; while ((len = sis.read(buffer)) != -1) { System.out.println(new String(buffer, 0, len)); }
使用Python Lib解压缩
使用Linux环境解压工具解压缩
针对Linux环境,日志服务提供可以解压snappy文件的工具,单击snappy_tool下载工具并执行以下代码解压,其中03_1453457006548078722_44148.snappy、03_1453457006548078722_44148请根据实际情况替换。
./snappy_tool 03_1453457006548078722_44148.snappy 03_1453457006548078722_44148
compressed.size: 2217186
snappy::Uncompress return: 1
uncompressed.size: 25223660