日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

解壓Snappy壓縮文件

日志服務將日志投遞到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方式

      <dependency>
      <groupId>org.xerial.snappy</groupId>
      <artifactId>snappy-java</artifactId>
      <version>1.0.4.1</version>
      <type>jar</type>
      <scope>compile</scope>
      </dependency>
  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