2013-06-20 44 views

回答

4

使用Datastax司机:

插入:

ByteBuffer fileByteBuffer = ByteBuffer.wrap(readFileToByteArray(filename)); 
    Statement insertFile = QueryBuilder.insertInto("files").value("filename", filename).value("file", fileByteBuffer); 
    session.execute(insertFile); 

阅读:

Statement readFile = QueryBuilder.select("file").from("files").where(QueryBuilder.eq("filename", filename)); 
    Row fileRow = session.execute(readFile).one(); 
    if (fileRow != null) { 
     ByteBuffer fileBytes = fileRow.getBytes("file"); 
     File f = convertToFile(fileBytes); 
    } 
+0

我发现,从卡桑德拉采取的字节有一些额外的头? –

2

Cassandra是一个key-value存储,而不是一个文件系统,所以你不能将文件写入它。 Cassandra中的所有值最终都是字节序列。因此,尽管您无法在Cassandra中存储文件,但您可以存储文件的内容。您将要将文件内容读入一个字节数组,然后将该文件的内容存储在Cassandra中。

相关问题