Write-S3Object: файл, указанный в свойстве FilePath, не существует - PullRequest
0 голосов
/ 01 ноября 2018

Я пишу сценарий powershell, который будет загружать имена файлов, перечисленные в текстовом файле, который был создан сценарием robocopy, в корзину S3, и я не могу получить запись синтаксиса для команды Write-S3Object.

Вот мой код, и я надеюсь, что вы можете помочь мне отладить его:

foreach($line in Get-Content C:\Scripts\ToS3\FileList1.txt) {
    if($line -match $regex){
        $key = $line -replace [regex]::Escape('\\server\e$\'), '/' -replace 
"c:\\", "s3://mybucket/" -replace "\\","/" -replace "  `t","" -replace "`t",""
        $file = $line  -replace "  `t","" -replace "`t",""
        write-output `"$file`"
        write-output `"$key`"
        Write-S3Object -BucketName mybucket -File `"$file`" -Key `"$key`" -ProfileName xxxx
    }
}

По какой-то причине $ file не загружается должным образом, хотя он прекрасно отображает данные при выводе. Что дает?

Все команды замены используются для создания вывода robocopy:

\ server \ e $ \ Data \ example папка 1 \ папка примера 2 \ другой файл 2.txt

в формат S3:

s3: // mybucket / Data / папка примера 1 / папка примера 2 / другой файл 2.txt

1 Ответ

0 голосов
/ 01 февраля 2019

Write-S3Object не понимает синтаксис s3: //. Просто дайте ему имя сегмента (для параметра -BucketName) и локальное имя файла для параметра -File. Если вы не укажете значение для -Key, будет использовано имя файла.

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