Browse Source

java: resolve parent directory if started with seaweedfs://

pull/1784/head
Chris Lu 4 years ago
parent
commit
8c3177d835
  1. 5
      other/java/client/src/main/java/seaweedfs/client/SeaweedOutputStream.java
  2. 25
      other/java/examples/src/main/java/com/seaweedfs/examples/HdfsCopyFile.java

5
other/java/client/src/main/java/seaweedfs/client/SeaweedOutputStream.java

@ -84,6 +84,11 @@ public class SeaweedOutputStream extends OutputStream {
}
public static String getParentDirectory(String path) {
int protoIndex = path.indexOf("://");
if (protoIndex >= 0) {
int pathStart = path.indexOf("/", protoIndex+3);
path = path.substring(pathStart);
}
if (path.equals("/")) {
return path;
}

25
other/java/examples/src/main/java/com/seaweedfs/examples/HdfsCopyFile.java

@ -0,0 +1,25 @@
package com.seaweedfs.examples;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import java.io.*;
public class HdfsCopyFile {
public static void main(String[] args) throws IOException {
Configuration configuration = new Configuration();
configuration.set("fs.defaultFS", "seaweedfs://localhost:8888");
configuration.set("fs.seaweedfs.impl", "seaweed.hdfs.SeaweedFileSystem");
FileSystem fs = FileSystem.get(configuration);
String source = "/Users/chris/tmp/test.zip";
String destination = "/buckets/spark/test01.zip";
InputStream in = new BufferedInputStream(new FileInputStream(source));
OutputStream out = fs.create(new Path(destination));
IOUtils.copyBytes(in, out, 4096, true);
}
}
Loading…
Cancel
Save