neo4j LOAD CSV returns Couldn't Load external resource - neo4j lost in directory

血红的双手。 提交于 2019-12-17 20:24:47

问题


Since I use Neo4j 3.0.1, this cypher query:

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

...

returns

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

Neo4j is located on my machine (Ubuntu 14.04), in the "Documents" folder, as the "links.csv" file.

(with a 2.xx version of neo4j this exact query was working perfectly)

I don't undersand why neo4j3.0 try to rebuild the csv file path in the "import" folder...
Uploading the file on ftp to query neo4j through http protocol works, so it's not about access permissions of the "import "folder". My "links.csv" file permission is 664.

Any idea ?


回答1:


This is a security that has been integrated in neo4j 3.0 in order to prevent scripts to load sources from an unwanted directory (like /etc/password for example.

You can add the following setting in conf/neo4j.conf in order to bypass this :

dbms.security.allow_csv_import_from_file_urls=true

Or just put your csv files in the import directory.




回答2:


You should comment out this line from the neo4j.conf line:

    dbms.directories.import=import

or set the files at the import




回答3:


I was getting a similar error. After reading others' answers, I'm guessing this is indeed a security issue. A quick fix for me was to move my data under the Neo4j/default.graphdb/import directory where Neo4j is trying to redirect anyway. In my case, I had to create the import directory. Now I can load my files using "file:///my_data_dir/test.csv" so long as my_data_dir is nested under Neo4j/default.graphdb/import

Note: I'm on Mac OS X El Capitan 10.11.6 and running Neo4j Community Edition 3.1.0-BETA1.




回答4:


From the configuration file '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


来源:https://stackoverflow.com/questions/37444448/neo4j-load-csv-returns-couldnt-load-external-resource-neo4j-lost-in-directory

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!