docs: public String uploadImage(byte[] image, byte[] watermark, String ext, Map<String, String> metaInfo, float opacity, int pos, int margin) {
          String path = "";
          TrackerServer trackerServer = null;
          StorageClient1 storageClient1 = null;
          ByteArrayOutputStream thumbOs = new ByteArrayOutputStream();
          ByteArrayOutputStream os = new ByteArrayOutputStream();
          try {
              trackerServer = fastDfsClientPool.borrowObject();
              storageClient1 = new StorageClient1(trackerServer, null);
              NameValuePair data[] = null;
              if (Lang.isNotEmpty(metaInfo)) {
                  data = new NameValuePair[metaInfo.size()];
                  int index = 0;
                  for (Map.Entry<String, String> entry : metaInfo.entrySet()) {
                      data[index] = new NameValuePair(entry.getKey(), entry.getValue());
                      index++;
                  }
              }
              //保存原图
              path = storageClient1.uploadFile1(image, ext, data);
              //保存水印图 作为原图的salve file
              BufferedImage bufferedImage = Images.addWatermark(image, watermark, opacity, pos, margin);
              Images.write(bufferedImage, ext, os);
              storageClient1.uploadFile1(path, IMAGE_WATERMARK_SUFFIX, os.toByteArray(), ext, data);
              //保存缩略图
              BufferedImage read = Images.read(image);
              BufferedImage bufferedImageThumb = Images.zoomScale(read, IMAGE_THUMB_WIDTH, IMAGE_THUMB_HEIGHT);
              Images.write(bufferedImageThumb, ext, thumbOs);
              storageClient1.uploadFile1(path, IMAGE_THUMB_SUFFIX, thumbOs.toByteArray(), ext, data);
  
          } catch (Exception e) {
              throw Lang.makeThrow("[FastdfsService] upload images error : %s", e.getMessage());
          } finally {
              Streams.safeClose(os);
              Streams.safeClose(thumbOs);
              try {
                  if (trackerServer != null)
                      fastDfsClientPool.returnObject(trackerServer);
                  storageClient1 = null;
              } catch (Exception e) {
                  log.error(e);
              }
          }
          return path;
      }