Как загрузить файлы на S3, используя дату последнего изменения папки? - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь собрать сценарий PowerShell, который позволит мне загружать файлы в мое AWS S3 Bucket на основе даты последнего изменения папки.

Это то, что у меня есть до сих пор:

using namespace System.IO;
Set-AWSCredentials -StoredCredentials MyCredentialsAws
Set-DefaultAWSRegion us-east-1

[String] $root = "C:\Users\Administrator\Documents\TestFolder";

[DateTime]$today = [DateTime]::Now.Date;

[FileSystemInfo[]]$folderList = Get-ChildItem -Path $root -Directory;
foreach( $folder in $folderList ) {

    if( $folder.LastWriteTime -lt $today ) {
        [String] $folderPath = $folder.FullName;
        aws s3 cp $folder s3://bucketname/$folder --recursive 
   }
}

Однако вышеприведенное дает мне ошибку:

"Указанный пользователем путь не существует"

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 03 октября 2019

Во-первых, вы использовали $folder в качестве источника в командной строке aws, когда вы, вероятно, намеревались использовать $folderPath. Кроме того, расширение Get-ChildItem не соответствует. В зависимости от контекста объекты иногда расширяются только до имени, а иногда до полного пути ( см. Здесь для более подробного объяснения). Из-за этого считается хорошей практикой явно использовать свойство, необходимое для данного сценария (Name, FullName, ...).

if ($folder.LastWriteTime -lt $today) {
    $folderPath = $folder.FullName
    $folderName = $folder.Name
    aws s3 cp $folderPath s3://bucketname/$folderName --recursive 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...