使用Invoke-RestMethod上传大文件时遇到问题

时间:2017-05-03 02:58:27

标签: powershell vagrant

我正在尝试使用Hashicorp Atlas restful api上传盒子文件,但是在上传大文件时遇到了问题。

我目前正在使用以下命令,该命令适用于100mb等小文件,但大多数盒子文件都超过4GB,我开始看到问题:

Manual/None

错误:

$Filename = "c:\box\mybox.box"
$uploadpath = "https://archivist.hashicorp.com/v1/object/example"
$Timeout = 86400 #24 hours
Invoke-RestMethod -Uri $uploadPath -Method Put -InFile $Filename -TimeoutSec $Timeout -ContentType "multipart/form-data"

如果按照文档使用CURL命令,它可以正常工作。

Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.
At C:\Program Files\WindowsPowerShell\Modules\atlasbox\1.1.15\AtlasBox.psm1:642 char:5
+     Invoke-RestMethod -Uri $uploadPath -Method Put -InFile $Filename  ...
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

任何想法如何使Invoke-RestMethod的行为与curl相同?

我不能依赖curl,因为我运行的所有系统都没有安装WSL而且没有卷曲。

Atlas API的文档位于:https://atlas.hashicorp.com/help/api/vagrant/box-providers

1 个答案:

答案 0 :(得分:0)

看起来SSL证书可能会变得奇怪吗?我会在这里尝试一些建议,但绝对是那些特定于这些cmdlet的奇怪之处:<​​/ p>

Powershell v3 Invoke-WebRequest HTTPS error