我使用GrapheneDB来托管我的Neo4j实例,并使用Readify的Neo4jClient nuget库从本地运行的MVC应用程序连接到它,如下所示:
var uri = new Uri(HttpContext.Current.Server.MapPath("~/App_Data/Data.csv"));
client.Connect();
client.Cypher
.LoadCsv(uri, "user")
.Create("(u:User { Id: user[1], Name: user[2] })")
.ExecuteWithoutResults();
这是抛出一个LoadExternalResourceException:
无法从网址加载' file:/// C:/source/blah/src/App_Data/Data.csv' ;:配置属性' dbms.security.allow_csv_import_from_file_urls'是假的
我在哪里以及如何配置此参数?
其次,是否有必要从Graphene数据库实例访问csv导入文件,或者这是客户关注的问题?
答案 0 :(得分:1)
LOAD CSV
子句在远程Neo4j实例上执行,该实例无权访问本地文件系统。
为了从远程实例上的CSV文件加载数据,有两个选项:
该文件需要上传到远程服务器的文件系统,配置设置dbms.security.allow_csv_import_from_file_urls
应设置为true。
出于明显的安全原因,这在GrapheneDB上是不可能的。
示例:
LOAD CSV FROM file://...
解决方案:
将文件上传到服务器或云服务,即AWS S3,Google Docs,Dropbox或您自己的服务器。 LOAD CSV
与文件的URL一起使用。该文件应该是公共可访问的,以便Neo4j可以实际下载文件来处理它。
示例:
LOAD CSV FROM http://...
这会