gpt4 book ai didi

org.apache.beam.sdk.util.ZipFiles.zipDirectory()方法的使用及代码示例

转载 作者:知者 更新时间:2024-03-16 00:51:31 28 4
gpt4 key购买 nike

本文整理了Java中org.apache.beam.sdk.util.ZipFiles.zipDirectory()方法的一些代码示例,展示了ZipFiles.zipDirectory()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZipFiles.zipDirectory()方法的具体详情如下:
包路径:org.apache.beam.sdk.util.ZipFiles
类名称:ZipFiles
方法名:zipDirectory

ZipFiles.zipDirectory介绍

[英]Zips an entire directory specified by the path.
[中]压缩路径指定的整个目录。

代码示例

代码示例来源:origin: org.apache.beam/beam-runners-core-construction-java

private static void zipDirectory(File directoryToStage, String uniqueDirectoryPath) {
  try {
   ZipFiles.zipDirectory(directoryToStage, new FileOutputStream(uniqueDirectoryPath));
  } catch (IOException e) {
   throw new RuntimeException(e);
  }
 }
}

代码示例来源:origin: org.apache.beam/beam-runners-reference-java

private static File zipDirectory(File directory) throws IOException {
 File zipFile = File.createTempFile(directory.getName(), ".zip");
 try (FileOutputStream fos = new FileOutputStream(zipFile)) {
  ZipFiles.zipDirectory(directory, fos);
 }
 return zipFile;
}

代码示例来源:origin: org.apache.beam/beam-runners-core-construction-java

private static String calculateDirectoryContentHash(File directoryToStage) {
 Hasher hasher = Hashing.sha256().newHasher();
 try (OutputStream hashStream = Funnels.asOutputStream(hasher)) {
  ZipFiles.zipDirectory(directoryToStage, hashStream);
  return hasher.hash().toString();
 } catch (IOException e) {
  throw new RuntimeException(e);
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

OutputStream outputStream =
   closer.register(new BufferedOutputStream(new FileOutputStream(zipFile)));
 zipDirectory(sourceDirectory, outputStream);
} catch (Throwable t) {
 throw closer.rethrow(t);

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

/** An empty subdirectory must have its own zip-entry. */
@Test
public void testEmptySubdirectoryHasZipEntry() throws Exception {
 File zipDir = new File(tmpDir, "zip");
 File subDirEmpty = new File(zipDir, "subDirEmpty");
 assertTrue(subDirEmpty.mkdirs());
 ZipFiles.zipDirectory(tmpDir, zipFile);
 assertZipOnlyContains("zip/subDirEmpty/");
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

/** A directory with contents should not have a zip entry. */
@Test
public void testSubdirectoryWithContentsHasNoZipEntry() throws Exception {
 File zipDir = new File(tmpDir, "zip");
 File subDirContent = new File(zipDir, "subdirContent");
 assertTrue(subDirContent.mkdirs());
 createFileWithContents(subDirContent, "myTextFile.txt", "Simple Text");
 ZipFiles.zipDirectory(tmpDir, zipFile);
 assertZipOnlyContains("zip/subdirContent/myTextFile.txt");
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

@Test
public void testEntries() throws Exception {
 File zipDir = new File(tmpDir, "zip");
 File subDir1 = new File(zipDir, "subDir1");
 File subDir2 = new File(subDir1, "subdir2");
 assertTrue(subDir2.mkdirs());
 createFileWithContents(subDir2, "myTextFile.txt", "Simple Text");
 ZipFiles.zipDirectory(tmpDir, zipFile);
 try (ZipFile zip = new ZipFile(zipFile)) {
  Enumeration<? extends ZipEntry> entries = zip.entries();
  for (ZipEntry entry : ZipFiles.entries(zip)) {
   assertTrue(entries.hasMoreElements());
   // ZipEntry doesn't override equals
   assertEquals(entry.getName(), entries.nextElement().getName());
  }
  assertFalse(entries.hasMoreElements());
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

@Test
public void testAsCharSource() throws Exception {
 File zipDir = new File(tmpDir, "zip");
 assertTrue(zipDir.mkdirs());
 createFileWithContents(zipDir, "myTextFile.txt", "Simple Text");
 ZipFiles.zipDirectory(tmpDir, zipFile);
 try (ZipFile zip = new ZipFile(zipFile)) {
  ZipEntry entry = zip.getEntry("zip/myTextFile.txt");
  CharSource charSource = ZipFiles.asCharSource(zip, entry, StandardCharsets.UTF_8);
  assertEquals("Simple Text", charSource.read());
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

/** try to unzip to a non-existent directory and make sure that it fails. */
@Test
public void testInvalidTargetDirectory() throws IOException {
 File zipDir = new File(tmpDir, "zipdir");
 assertTrue(zipDir.mkdir());
 ZipFiles.zipDirectory(tmpDir, zipFile);
 File invalidDirectory = new File("/foo/bar");
 assertTrue(!invalidDirectory.exists());
 try {
  ZipFiles.unzipFile(zipFile, invalidDirectory);
  fail("We expect the IllegalArgumentException, but it never occured");
 } catch (IllegalArgumentException e) {
  // This is the expected exception - we passed the test.
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

@Test
public void testAsByteSource() throws Exception {
 File zipDir = new File(tmpDir, "zip");
 assertTrue(zipDir.mkdirs());
 createFileWithContents(zipDir, "myTextFile.txt", "Simple Text");
 ZipFiles.zipDirectory(tmpDir, zipFile);
 try (ZipFile zip = new ZipFile(zipFile)) {
  ZipEntry entry = zip.getEntry("zip/myTextFile.txt");
  ByteSource byteSource = ZipFiles.asByteSource(zip, entry);
  if (entry.getSize() != -1) {
   assertEquals(entry.getSize(), byteSource.size());
  }
  assertArrayEquals("Simple Text".getBytes(StandardCharsets.UTF_8), byteSource.read());
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

/** Try to unzip to an existing directory, but failing to create directories. */
@Test
public void testDirectoryCreateFailed() throws IOException {
 File zipDir = new File(tmpDir, "zipdir");
 assertTrue(zipDir.mkdir());
 ZipFiles.zipDirectory(tmpDir, zipFile);
 File targetDirectory = Files.createTempDir();
 // Touch a file where the directory should be.
 Files.touch(new File(targetDirectory, "zipdir"));
 try {
  ZipFiles.unzipFile(zipFile, targetDirectory);
  fail("We expect the IOException, but it never occured");
 } catch (IOException e) {
  // This is the expected exception - we passed the test.
 }
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

/**
 * zip and unzip a certain directory, and verify the content afterward to be identical.
 *
 * @param sourceDir the directory to zip
 */
private void assertZipAndUnzipOfDirectoryMatchesOriginal(File sourceDir) throws IOException {
 File[] sourceFiles = sourceDir.listFiles();
 Arrays.sort(sourceFiles);
 File zipFile = createZipFileHandle();
 ZipFiles.zipDirectory(sourceDir, zipFile);
 File outputDir = Files.createTempDir();
 ZipFiles.unzipFile(zipFile, outputDir);
 File[] outputFiles = outputDir.listFiles();
 Arrays.sort(outputFiles);
 assertThat(outputFiles, arrayWithSize(sourceFiles.length));
 for (int i = 0; i < sourceFiles.length; i++) {
  compareFileContents(sourceFiles[i], outputFiles[i]);
 }
 removeRecursive(outputDir.toPath());
 assertTrue(zipFile.delete());
}

代码示例来源:origin: org.apache.beam/beam-sdks-java-core

@Test
public void testZipDirectoryToOutputStream() throws Exception {
 createFileWithContents(tmpDir, "myTextFile.txt", "Simple Text");
 File[] sourceFiles = tmpDir.listFiles();
 Arrays.sort(sourceFiles);
 assertThat(sourceFiles, not(arrayWithSize(0)));
 try (FileOutputStream outputStream = new FileOutputStream(zipFile)) {
  ZipFiles.zipDirectory(tmpDir, outputStream);
 }
 File outputDir = Files.createTempDir();
 ZipFiles.unzipFile(zipFile, outputDir);
 File[] outputFiles = outputDir.listFiles();
 Arrays.sort(outputFiles);
 assertThat(outputFiles, arrayWithSize(sourceFiles.length));
 for (int i = 0; i < sourceFiles.length; i++) {
  compareFileContents(sourceFiles[i], outputFiles[i]);
 }
 removeRecursive(outputDir.toPath());
 assertTrue(zipFile.delete());
}

代码示例来源:origin: org.apache.beam/beam-runners-google-cloud-dataflow-java

private StagingResult tryStagePackage(PackageAttributes attributes, CreateOptions createOptions)
  throws IOException, InterruptedException {
 String sourceDescription = attributes.getSourceDescription();
 String target = attributes.getDestination().getLocation();
 LOG.info("Uploading {} to {}", sourceDescription, target);
 try (WritableByteChannel writer =
   FileSystems.create(FileSystems.matchNewResource(target, false), createOptions)) {
  if (attributes.getBytes() != null) {
   ByteSource.wrap(attributes.getBytes()).copyTo(Channels.newOutputStream(writer));
  } else {
   File sourceFile = attributes.getSource();
   checkState(
     sourceFile != null,
     "Internal inconsistency: we tried to stage something to %s, but neither a source file "
       + "nor the byte content was specified",
     target);
   if (sourceFile.isDirectory()) {
    ZipFiles.zipDirectory(sourceFile, Channels.newOutputStream(writer));
   } else {
    Files.asByteSource(sourceFile).copyTo(Channels.newOutputStream(writer));
   }
  }
 }
 return StagingResult.uploaded(attributes);
}

代码示例来源:origin: org.apache.beam/beam-runners-google-cloud-dataflow-java

public static PackageAttributes forFileToStage(File source, String stagingPath)
  throws IOException {
 // Compute size and hash in one pass over file or directory.
 long size;
 String hash;
 Hasher hasher = Hashing.md5().newHasher();
 OutputStream hashStream = Funnels.asOutputStream(hasher);
 try (CountingOutputStream countingOutputStream = new CountingOutputStream(hashStream)) {
  if (!source.isDirectory()) {
   // Files are staged as-is.
   Files.asByteSource(source).copyTo(countingOutputStream);
  } else {
   // Directories are recursively zipped.
   ZipFiles.zipDirectory(source, countingOutputStream);
  }
  countingOutputStream.flush();
  size = countingOutputStream.getCount();
  hash = Base64Variants.MODIFIED_FOR_URL.encode(hasher.hash().asBytes());
 }
 String uniqueName = getUniqueContentName(source, hash);
 String resourcePath =
   FileSystems.matchNewResource(stagingPath, true)
     .resolve(uniqueName, StandardResolveOptions.RESOLVE_FILE)
     .toString();
 DataflowPackage target = new DataflowPackage();
 target.setName(uniqueName);
 target.setLocation(resourcePath);
 return new AutoValue_PackageUtil_PackageAttributes(source, null, target, size, hash);
}

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com