import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.types.Binary;
import org.bson.types.ObjectId;
import org.springframework.util.FileCopyUtils;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* @author leo
* @date 2021/12/27 15:01
*/
public class LeoFileDownTest {
private static String host = "localhost";
private static Integer port = 47117;
private static String userName = "admin";
private static String database = "TFS";
private static String databaseName = "TFS";
private static String password = "root123456";
private static String md5 = "aec6143b2c358a64497e89bfaa285b02";
public static void main(String[] args) throws IOException {
ServerAddress serverAddress = new ServerAddress(host , port);
List<ServerAddress> addrs = new ArrayList<>();
addrs.add(serverAddress);
MongoCredential credential = MongoCredential.createCredential(userName, database, password.toCharArray());
MongoClientOptions.Builder builder = MongoClientOptions.builder();
MongoClientOptions clientOptions = builder.build();
MongoClient mongoClient = new MongoClient(addrs, credential, clientOptions);
MongoDatabase tfs = mongoClient.getDatabase(databaseName);
MongoCollection<Document> collection = tfs.getCollection("fs.files");
Document query = new Document("md5", md5);
FindIterable<Document> documents = collection.find(query);
for (Document document : documents) {
ObjectId id = document.getObjectId("_id");
// System.out.println(id);
collection = tfs.getCollection("fs.chunks");
query = new Document("files_id", id);
documents = collection.find(query);
for (Document document2 : documents) {
ObjectId id2 = document2.getObjectId("_id");
Binary data2 = (Binary) document2.get("data");
byte[] data1 = data2.getData();
FileCopyUtils.copy(data1, new File("C:\\Users\\Dell\\Desktop\\" + id2 + ".csv"));
System.out.println(id2);
}
}
}
}