详情页标题前

阿里云日志服务SLS解压Snappy压缩文件-云淘科技

详情页1

日志服务将日志投递到OSS时,支持通过Snappy压缩OSS文件。投递成功后,您可以通过C++ Lib、Java Lib、Python Lib、Linux工具等方式解压OSS文件。

使用C++ Lib解压

  1. 下载Snappy Lib。

  2. 使用Snappy.Uncompress解压。

使用Java Lib解压

  1. 选择以下任意一种方式下载Java Lib。

    说明

    1.1.2.1版本存在Bug ,可能无法解压部分压缩文件。1.1.2.6及以上版本已修复该问题,建议您使用1.1.2.6及以上版本的Java Lib。关于该Bug的更多信息,请参见bad handling of the MAGIC HEADER。

    • 手动方式

      xerial snappy-java

    • Maven方式

      
      org.xerial.snappy
      snappy-java
      1.0.4.1
      jar
      compile
      
  2. 使用以下任意一种方法解压。

    说明

    不支持使用SnappyFramedInputStream。

    • 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解压

  1. 下载Python Lib。

  2. 使用snappy.uncompress解压。

    • Python 2示例代码如下:

      import snappy
      compressed = open('/tmp/temp.snappy').read()
      snappy.uncompress(compressed)
    • Python 3示例代码如下:

      import snappy
      compressed = open('/tmp/temp.snappy','rb').read()
      print(snappy.uncompress(compressed).decode(encoding='utf-8',errors="ignore"))

    说明

    • 如果您在Windows系统下,使用snappy.uncompress解压出现报错,例如UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal multibyte sequence,可能是Windows文件系统以BOM开头导致的。建议您使用类Unix系统或者在open函数的encoding中设置正确的文件编码。

    • 不支持通过以下命令行工具解压snappy压缩文件,命令行模式下仅支持hadoop模式(hadoop_stream_decompress)与流模式(stream_decompress)。

      python -m snappy -d compressed_file.snappy uncompressed_file                            

使用开源PHP工具解压

您可以使用开源的PHP工具解压Snappy文件。

  1. 下载php-ext-snappy源码。

    您也可以执行以下命令行下载php-ext-snappy源码。

    git clone --recursive --depth=1 https://github.com/kjdev/php-ext-snappy.git
  2. 编译源码。

    % cd php-ext-snappy
    % phpize
    % ./configure
    % make
    % make install
  3. 在php.ini文件中配置扩展格式。

    extension=snappy.so

    完成以上配置后,就可以参考以下代码压缩和解压snappy格式文件。

    $file_path = "test.snappy" ;
    if (file_exists($file_path)) {
      $str = file_get_contents($file_path); //将整个文件内容读入到一个字符串中。
      $uncompressed = snappy_uncompress($str);
      echo $uncompressed;
    }

更多参考

您可以访问GitHub上Snappy的开源项目,获取更多支持。更多信息,请参见开源Snappy。

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/165047.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云日志服务SLS解压Snappy压缩文件-云淘科技

    日志服务将日志投递到OSS时,支持通过Snappy压缩OSS文件。投递成功后,您可以通过C++ Lib、Java Lib、Python Lib、Linux工具等方式解压OSS文件。 使用C++ Lib解压 下载Snappy Lib。 使用Snappy.Uncompress解压。 使用Java Lib解压 选择以下任意一种方式下载Java Lib。 说明 1.…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云对象存储OSSZIP包解压-云淘科技

    对象存储OSS提供ZIP文件自动解压功能。配置解压规则后,您上传到OSS指定路径的ZIP文件都会被自动解压。 前提条件 已开通函数计算服务。您可以在函数计算的产品详情页面开通函数计算服务。 仅华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北 3(张家口)、华北5(呼和浩特)、华南1(深圳)、西南1(成都)、中国香港、新加坡、澳大利亚(悉尼…

    阿里云对象存储 2023年12月10日
  • 阿里云日志服务SLS稳定性说明与使用限制-云淘科技

    本文介绍OSS投递(新版)的稳定性与使用限制。 稳定性说明 读日志服务 稳定项 说明 可用性 可用性较高。 如果日志服务出错,无法读取数据,OSS投递任务会在内部至少重试10次。如果仍然失败,任务执行会报错,然后任务重启。 写OSS 稳定项 说明 并发度 按照日志服务Shard进行分区并创建投递实例,支持快速扩容。 如果日志服务源Logstore进行Shar…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLSJSON格式-云淘科技

    日志服务将日志投递到OSS后,支持存储为不同的文件格式,本文介绍JSON格式。 参数配置 在配置投递规则时,如果选择存储格式为json,对应的参数配置如下所示。 参数 说明 是否投递tag 是否投递日志tag字段,例如__tag__:abc。 OSS文件地址 投递到OSS后,OSS文件地址样例如下所示。 压缩类型 文件后缀 OSS文件地址示例 说明 不压缩 …

    阿里云日志服务SLS 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLSJSON格式-云淘科技

    日志服务将日志投递到OSS后,支持存储为不同的文件格式,本文介绍JSON格式。 参数配置 在配置投递规则时,如果选择存储格式为json,对应的参数配置如下所示。 参数 说明 是否投递tag 是否投递日志tag字段,例如__tag__:abc。 OSS文件地址 投递到OSS后,OSS文件地址样例如下所示。 压缩类型 文件后缀 OSS文件地址示例 说明 不压缩 …

    阿里云日志服务SLS 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。