如何使用Couchdb4j库向CouchDB添加附件

时间:2013-10-11 09:19:36

标签: java javascript couchdb

如何使用Java应用程序使用Couchdb4J库将系统文件添加为Couchdb数据库的附件?

我尝试修改下面的示例代码,但是有一个未解决的错误。有谁知道我的错误在哪里以及如何解决?提前谢谢。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import com.fourspaces.couchdb.CouchResponse;
import com.fourspaces.couchdb.Database;
import com.fourspaces.couchdb.Document;
import com.fourspaces.couchdb.Session;

public class FileScanner {

Session priceListDocsSession = new Session("localhost",5984);
  Database db = priceListDocsSession.getDatabase("filesdb");

  public static void main(String[] args) {
  FileScanner fs = new FileScanner();

 fs.processDir(new File("C:\\CouchDB"));
}

void processDir(File f) {
if (f.isFile()) {
  Map<String, Object> doc = new HashMap<String, Object>();
  doc.put("name", f.getName());
  doc.put("path", f.getAbsolutePath());
  doc.put("size", f.length());


  db.saveDocument(doc);
  InputStream is = new FileInputStream(f);
  String att=db.putAttachment(doc.getId(),doc.getRev(),f,is);
   } 
else {
  File[] fileList = f.listFiles();
  if (fileList == null) return;
  for (int i = 0; i < fileList.length; i++) {
    try {
      processDir(fileList[i]);
     } catch (Exception e) {
      System.out.println(e);
        }

      }
    }
  }
}

错误显示在db.saveDocument(doc);

String att=db.putAttachment(doc.getId(),doc.getRev(),f,is);.getId()getRev()未定义类型Map

1 个答案:

答案 0 :(得分:0)

我设法通过在类路径上添加一些jcouchdb依赖项来解决问题。