docs: private File unpackFile(HttpPipeKey key) {
          Pipeline pipeline = configClientService.findPipeline(key.getIdentity().getPipelineId());
          DataRetriever dataRetriever = dataRetrieverFactory.createRetriever(pipeline.getParameters().getRetriever(),
                                                                             key.getUrl(), downloadDir);
          File archiveFile = null;
          try {
              dataRetriever.connect();
              dataRetriever.doRetrieve();
              archiveFile = dataRetriever.getDataAsFile();
          } catch (Exception e) {
              dataRetriever.abort();
              throw new PipeException("download_error", e);
          } finally {
              dataRetriever.disconnect();
          }
  
          // 处理下有加密的数据
          if (StringUtils.isNotEmpty(key.getKey()) && StringUtils.isNotEmpty(key.getCrc())) {
              decodeFile(archiveFile, key.getKey(), key.getCrc());
          }
  
          // 去除末尾的.gzip后缀，做为解压目录
          String dir = StringUtils.removeEnd(archiveFile.getPath(),
                                             FilenameUtils.EXTENSION_SEPARATOR_STR
                                                     + FilenameUtils.getExtension(archiveFile.getPath()));
          File unpackDir = new File(dir);
          // 开始解压
          getArchiveBean().unpack(archiveFile, unpackDir);
          return unpackDir;
      }