neo4j LOAD CSV返回无法加载外部资源 - neo4j在目录中丢失

时间:2016-05-25 17:55:06

标签: file csv neo4j cypher

由于我使用Neo4j 3.0.1,这个密码查询:

USING PERIODIC COMMIT 500  
 LOAD CSV WITH HEADERS  
 FROM >"file:///home/user/Documents/links.csv" AS csvLine  
  

...

返回

Couldn't load the external resource at: file:/home/user/Documents/neo4j-community-3.0.1/import/home/user/Documents/links.csv

Neo4j位于我的机器上(Ubuntu 14.04),位于" Documents"文件夹,作为" links.csv"文件。

(使用2.xx版本的neo4j,这个确切的查询工作正常)

我不知道为什么neo4j3.0尝试在" import"中重建csv文件路径。文件夹...
在ftp上传文件以通过http协议查询neo4j是有效的,因此它与" import"文件夹"的访问权限无关。我的#34; links.csv"文件权限是664。

有什么想法吗?

4 个答案:

答案 0 :(得分:11)

这是一个集成在neo4j 3.0中的安全性,以防止脚本从不需要的目录加载源(例如/etc/password

您可以在conf/neo4j.conf中添加以下设置,以避开此问题:

dbms.security.allow_csv_import_from_file_urls=true

或者只是将您的csv文件放在导入目录中。

答案 1 :(得分:3)

你应该从neo4j.conf注释掉这一行 line:

    dbms.directories.import=import

或在导入时设置文件

答案 2 :(得分:1)

我遇到了类似的错误。在读完别人的答案之后,我猜这确实是一个安全问题。对我来说快速解决方法是将我的数据移动到Neo4j / default.graphdb / import目录下,Neo4j正试图重定向。就我而言,我必须创建导入目录。现在我可以使用“file:///my_data_dir/test.csv”加载我的文件,只要my_data_dir嵌套在Neo4j / default.graphdb / import

注意:我使用的是Mac OS X El Capitan 10.11.6并运行Neo4j Community Edition 3.1.0-BETA1。

答案 3 :(得分:0)

从配置文件'neo4j.conf':

# This setting constrains all `LOAD CSV` import files to be under the `import` directory. Remove or uncomment it to
# allow files to be loaded from anywhere in filesystem; this introduces possible security problems. See the `LOAD CSV`
# section of the manual for details.
#dbms.directories.import=import