Нижеприведенный скрипт копирует все файлы из структуры папок, затем вставляет их в ведро S3. Однако я хочу, чтобы он мог пропускать файлы, которые не были изменены со времени последней загрузки, чтобы избежать дублирования загрузки. Кто-нибудь знает, как я могу получить, если файл существует, проверка или последнее изменение?Как я могу определить локальные файлы, которые уже были загружены на S3, и с тех пор не изменились?
Import-Module "C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1"
$bucket="bucketname"
$source="e:\dfs\*"
$outputpath="C:\temp\log.txt"
$AKey="xxxx"
$SKey="xxxx"
Set-AWSCredentials -AccessKey $AKey -SecretKey $SKey -StoreAs For_Move
Initialize-AWSDefaults -ProfileName For_Move -Region eu-west-1
Start-Transcript -path $outputpath -Force
foreach ($i in Get-ChildItem $source -include *.* -recurse)
{
if ($i.CreationTime -lt ($(Get-Date).AddDays(-0)))
{
$fileName = (Get-ChildItem $i).Name
$parentFolderName = Split-Path $i -Parent
Write-S3Object -BucketName $bucket -Key dfs/$parentFolderName/$filename -File $i
}
}
Почему бы не использовать функцию синхронизации? http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html –
Я рассмотрю этот вариант. Спасибо –
А, мне было интересно, почему не было параметра «noclobber» (или подобного). Что объясняет его! –