无法通过 https 私有 URL neo4j 5.18 加载 CSV

问题描述 投票:0回答:1

我使用以下查询从私有 URL 加载 CSV。通过在 neo4j.conf 中启用属性

dbms.security.allow_csv_import_from_file_urls=true

从“https://mySample/api/File/DownloadFile/mysample.csv”加载带有标头的 CSV AS 行失败并出现错误

Cypher Neo4j 无法从 URL 加载外部资源 https://mySample/api/File/DownloadFile/mysample.csv

堆栈跟踪:

Caused by: org.neo4j.exceptions.CypherExecutionException: Failed to parse query LOAD CSV FROM "https://mySample/api/File/DownloadFile/mysample.csv.
at org.neo4j.cypher.internal.ast.factory.neo4j.JavaCCParser$.parse(JavaCCParser.scala:61) ~[neo4j-cypher-ast-factory-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Parse$.process(Parse.scala:38) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Parse$.process(Parse.scala:31) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Phase.$anonfun$transform$1(Phase.scala:36) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.helpers.package$.$anonfun$closing$1(package.scala:25) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.helpers.package$.using(package.scala:34) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.helpers.package$.closing(package.scala:25) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Phase.transform(Phase.scala:35) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Phase.transform$(Phase.scala:33) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.Parse$.transform(Parse.scala:31) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.frontend.phases.PipeLine.transform(Transformer.scala:78) ~[neo4j-front-end-5.18.1.jar:5.18.1]
at org.neo4j.cypher.internal.compiler.CypherParsing.parseQuery(CypherParsing.scala:80) ~[neo4j-cypher-planner-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.query.QueryProcessorImpl.parse(QueryProcessorImpl.java:271) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.query.QueryProcessorImpl.prepareQueryForCache(QueryProcessorImpl.java:160) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.query.QueryProcessorImpl.getFromCache(QueryProcessorImpl.java:144) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.query.QueryProcessorImpl.processQuery(QueryProcessorImpl.java:104) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.QueryRouterImpl.executeQuery(QueryRouterImpl.java:198) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.executeQuery(QueryRouterBoltSpi.java:162) ~[neo4j-query-router-5.18.1.jar:5.18.1]
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:136) ~[neo4j-bolt-5.18.1.jar:5.18.1]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.18.1.jar:5.18.1]

预期行为 neo4j 5.18 应该从给定的私有 URL 加载 csv 文件

实际行为 无法从给定的私有 URL 加载 neo4j 5.18

注:

通过访问浏览器下载相同的私有 URL。 其他公共 csv url 也从 neo4j 加载。

neo4j cypher
1个回答
0
投票

您使用了错误的URL方案。您应该对本地计算机上的文件使用“文件”方案

例如,如果文件的完整路径

Users/sela/mySample/api/File/DownloadFile/mysample.csv
,则使用此子句:

LOAD CSV WITH HEADERS FROM "file:///Users/sela/mySample/api/File/DownloadFile/mysample.csv" AS row
© www.soinside.com 2019 - 2024. All rights reserved.