Как отформатировать PowerShell invoke-restmethod для загрузки файла amazon-s3 - PullRequest
0 голосов
/ 03 января 2019

При попытке загрузить файл в Amazon S3 с помощью invoke-restmethod в PowerShell 5.1 возникает ошибка (412) Precondition Failed. Я считаю, что у меня есть проблема с информацией заголовка в моем скрипте, но я не могу понять, что нужно изменить.

Поставщик, которому я отправляю файл, успешно создает местоположение S3 и возвращает form_data, url, bucket, key, policy и т. Д. Я использую эту информацию для создания заголовка при передаче в 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) Сбой предварительного условия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...