0

我正在使用 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:

无法从 URL 'file:///C:/source/blah/src/App_Data/Data.csv' 加载:配置属性 'dbms.security.allow_csv_import_from_file_urls' 为 false

我在哪里以及如何配置此参数?

其次,是否有必要从 Graphene DB 实例访问 csv 导入文件,或者这是客户关心的问题?

4

1 回答 1

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://...

这个会

于 2016-12-21T10:50:45.133 回答