如何为上载Amazon S3文件的格式设置PowerShell invoke-restmethod

时间:2019-01-03 18:35:41

标签: powershell amazon-s3

尝试在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)前提条件失败。

0 个答案:

没有答案