如何使用 powershell 从 S3 向 Neptune 实例发送 json 数据?
How to send json data using powershell from S3 to Neptune instance?
我有一个 turtle 文件,我希望将其从 S3 服务器发送到 powershell 上的 Neptune 实例。下面是我正在使用的命令
Invoke-RestMethod -Uri http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182 -ContentType application/json -body '
{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
这给我以下错误
Invoke-RestMethod : Cannot send a content-body with this verb-type.
我做了细微的更改,但似乎没有任何效果。感谢您的帮助!
当您的 REQUEST VERB 不允许时,您说您正在尝试发送 BODY 时出错。
基本上你正在执行 GET 并试图发送一个正文。当不允许 GET 动词发送正文部分时。
可能您需要使用 POST 方法(查看特定的网络服务文档)
为此,我向您推荐下一种格式:
$Cred = Get-Credential (If you could have)
$Url = "http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182"
$Body = '{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -ContentType $contentType -Body $body -ContentType 'application/json' -OutFile output.csv
(*)当然-OutFile是可选的
关于 JSON 有一个名为 ConvertFrom-JSON 的 cmdlet,您可以在需要解析输出(即 JSON)时常用。
p.e:
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body |
ConvertFrom-JSON | Select field1, field2, field3
如果您希望输出 (json) 具有 field1、field2、field3 作为字段
我有一个 turtle 文件,我希望将其从 S3 服务器发送到 powershell 上的 Neptune 实例。下面是我正在使用的命令
Invoke-RestMethod -Uri http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182 -ContentType application/json -body '
{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
这给我以下错误
Invoke-RestMethod : Cannot send a content-body with this verb-type.
我做了细微的更改,但似乎没有任何效果。感谢您的帮助!
当您的 REQUEST VERB 不允许时,您说您正在尝试发送 BODY 时出错。
基本上你正在执行 GET 并试图发送一个正文。当不允许 GET 动词发送正文部分时。 可能您需要使用 POST 方法(查看特定的网络服务文档)
为此,我向您推荐下一种格式:
$Cred = Get-Credential (If you could have)
$Url = "http://edwardspoc.civwhymjvz19.us-east-1.neptune.amazonaws.com:8182"
$Body = '{
"source" : "s3://cedwardsneptune/ATC.ttl",
"format" : "turtle",
"iamRoleArn" : "arn:aws:s3:::cedwardsneptune",
"region" : "us-east-1",
"failOnError" : "FALSE",
"parserConfiguration" : {
"namedGraphUri" : "http://purl.bioontology.org/ontology/ATC"
}
}'
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -ContentType $contentType -Body $body -ContentType 'application/json' -OutFile output.csv
(*)当然-OutFile是可选的
关于 JSON 有一个名为 ConvertFrom-JSON 的 cmdlet,您可以在需要解析输出(即 JSON)时常用。
p.e:
Invoke-RestMethod -Method 'Post' -Uri $url -Credential $Cred -Body $body |
ConvertFrom-JSON | Select field1, field2, field3
如果您希望输出 (json) 具有 field1、field2、field3 作为字段