Я пытаюсь автоматизировать извлечение файлов из хранилища Amazon S3 на локальный диск с помощью сценария PowerShell Cloudberry Explorer. Используя настольное приложение, я могу вручную подключаться и переносить файлы в локальную папку. При использовании PowerShell я получаю сообщение об ошибке The Remote name could not be resolved 'http'
. Ниже мой код, который я считаю правильным. Я пробовал использовать информацию о прокси и без нее, но получаю ту же ошибку. У меня также была проверка подлинности прокси-сервера обхода сетевого администратора для сайта. Я не уверен, что еще могло вызвать эту ошибку.
Add-PSSnapin CloudBerryLab.Explorer.PSSnapIn
#Set Proxy info
Set-CloudOption -ProxyAddress [proxy info here] -ProxyPort 8080
#Set connection to Amazon S3 account with access key and secret key
$s3 = Get-CloudS3Connection -Key ***** -Secret ***** -SignatureVersion 2 -UseSSL
#Set source and Destination folders
$source = $s3 | Select-CloudFolder -Path "my folder/subfolder"
$local = Get-CloudFileSystemConnection
$target = $local | Select-CloudFolder "C:\localdrive"
#Run sync folders source to target:
$source | Copy-CloudSyncFolders $target -DeleteOnTarget -MissingOnly
На мой взгляд, для автоматизации относительно простых задач лучше использовать нативный S3 API. Я обнаружил, что API Cloudberry менее надежен для таких случаев. Взгляните здесь для получения дополнительной информации: http://docs.aws.amazon.com/cli/latest/reference/s3api/get-object.html
достаточно просто использовать -UseSSL.
-SignatureVersion 2 используется только для S3-совместимых провайдеров.
Это должно работать:
$ s3 = Get-CloudS3Connection -UseSSL -Key ***** -Secret *****
Также просто чтобы убедиться, что вы можете добавить CloudBerry Explorer.exe в список сетевых исключений, чтобы избежать возможных сетевых ошибок.
И последнее, что нужно отметить - в настоящее время Powershell поддерживается как есть.