5

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 ?

Auguste
  • 2,007
  • 2
  • 17
  • 25
mquantin
  • 1,085
  • 8
  • 23

4 Answers4

11

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.

Christophe Willemsen
  • 19,399
  • 2
  • 29
  • 36
2

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

    dbms.directories.import=import

or set the files at the import

demonplus
  • 5,613
  • 12
  • 49
  • 68
Ran Adler
  • 3,587
  • 30
  • 27
1

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.

Kairsten
  • 91
  • 7
-1

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
mmgross
  • 3,064
  • 1
  • 23
  • 32
Anupam
  • 9