尝试在PowerShell 5.1中使用invoke-restmethod将文件上传到Amazon S3时,出现(412)前提条件失败错误。我相信我的脚本中的标头信息有问题,但无法弄清楚需要更改什么。
一个供应商,我正在发送文件以成功创建S3位置,并返回form_data,url,存储桶,密钥,策略等。传递给invoke-restmethod时,我正在使用此信息来构建标头。
关于我所缺少的任何想法吗?预先感谢!
$header = @{
'acl' = 'authenticated-read'
'key' = $s3tempfile.form_data.key
'policy' = $s3tempfile.form_data.policy
'x-amz-credential' = $s3tempfile.form_data.'x-amz-credential'
'x-amz-algorithm' = $s3tempfile.form_data.'x-amz-algorithm'
'x-amz-signature' = $s3tempfile.form_data.'x-amz-signature'
'x-amz-date' = $s3tempfile.form_data.'x-amz-date'
'x-amz-security-token' = $s3tempfile.form_data.'x-amz-security-token'
'bucket' = $s3tempfile.bucket
}
$body = @{
'file' = Get-Item -Path 'C:\scripts\upload\data.csv'
}
$s3upload = Invoke-restmethod -UseBasicParsing -uri $s3tempfile.url -header
$header -body $body -Method Post -ContentType 'text/csv'
我期望将csv文件上传到$ s3tempfile.url,但出现以下错误:
Invoke-restmethod:远程服务器返回错误:(412)前提条件失败。