docs: private HttpPipeKey archiveFile(final FileBatch fileBatch) {
          // 处理构造对应的文件url
          String filename = buildFileName(fileBatch.getIdentity(), ClassUtils.getShortClassName(fileBatch.getClass()));
          File file = new File(htdocsDir, filename);
          // 压缩对应的文件数据
          List<FileData> fileDatas = fileBatch.getFiles();
          Pipeline pipeline = configClientService.findPipeline(fileBatch.getIdentity().getPipelineId());
          int poolSize = pipeline.getParameters().getFileLoadPoolSize();
          boolean useLocalFileMutliThread = pipeline.getParameters().getUseLocalFileMutliThread();
          ArchiveBean archiveBean = getArchiveBean();
          archiveBean.adjustPoolSize(poolSize);// 调整线程池大小
          archiveBean.setUseLocalFileMutliThread(useLocalFileMutliThread);// 设置是否启用local多线程同步
          boolean done = archiveBean.pack(file, fileDatas, new ArchiveRetriverCallback<FileData>() {
  
              public InputStream retrive(FileData fileData) {
                  boolean miss = false;
                  try {
                      if (StringUtils.isNotEmpty(fileData.getNameSpace())) {
                          throw new RuntimeException(fileData + " is not support!");
                      } else {
                          File source = new File(fileData.getPath());
                          if (source.exists() && source.isFile()) {
                              return new LazyFileInputStream(source);
                          } else {
                              miss = true;
                              return null;
                          }
                      }
                  } finally {
                      if (miss && logger.isInfoEnabled()) {
                          MDC.put(OtterConstants.splitPipelineLoadLogFileKey,
                                  String.valueOf(fileBatch.getIdentity().getPipelineId()));
                          logger.info(FileloadDumper.dumpMissFileDatas(fileBatch.getIdentity(), fileData));
                      }
                  }
  
              }
          });
  
          if (done == false) {
              return null; // 直接返回
          }
  
          HttpPipeKey key = new HttpPipeKey();
          key.setUrl(remoteUrlBuilder.getUrl(fileBatch.getIdentity().getPipelineId(), filename));
          key.setDataType(PipeDataType.FILE_BATCH);
          key.setIdentity(fileBatch.getIdentity());
          if (encrypt || pipeline.getParameters().getUseFileEncrypt()) {
              // 加密处理
              EncryptedData encryptedData = encryptFile(file);
              key.setKey(encryptedData.getKey());
              key.setCrc(encryptedData.getCrc());
          }
          return key;
      }