Я пытаюсь автоматизировать загрузку файлов в Glacier с помощью оснастки PowerShell Cloudberry Explorer, но не могу копировать файлы в предпочтительное место назначения. По какой-то причине структура исходных каталогов зеркально отражена в хранилище Glacier. Например, происходит следующее:
Есть идеи, как изменить это поведение?
Код:
#get name of oldest subfolder. subfolder names are based on date they were generated yyyyMMdd
$oldestFolder = Get-ChildItem C:\folder1\subfolder1 -directory -name | Sort-Object -descending | select -last 1
$dateToProcess = $oldestFolder
$srcFolder = "C:\folder1\subfolder1\"
$dstFolder = $srcFolder
# Compress directory before transmission
$block = [scriptblock]::Create("7z a -ttar $dstFolder$dateToProcess.tar $srcFolder$dateToProcess; 7z a -tbzip2 $dstFolder$dateToProcess.tar.bz2 $dstFolder$dateToProcess.tar; del $dstFolder$dateToProcess.tar")
& $block
add-pssnapin CloudBerryLab.Explorer.PSSnapIn
# Create connection
$conn = Get-CloudGlacierConnection -UseSSL -Key [Access key] -Secret [Secret Key]
# Set options
Set-CloudOption -GlacierChunkSizeMB 4
Set-CloudOption -GlacierParallelUpload 1
$vault = $conn | Select-CloudFolder -Path "us-east-1/vaultName"
$destination = $vault
# Select source folder
$src = Get-CloudFilesystemConnection | Select-CloudFolder $srcFolder
# Upload files to Glacier by filter
$src | Copy-CloudItem -Destination $destination -Filter "$dateToProcess.tar.bz2"
Вместо этого фрагмента сценария:
$block = [scriptblock]::Create("7z a -ttar $dstFolder$dateToProcess.tar $srcFolder$dateToProcess; 7z a -tbzip2 $dstFolder$dateToProcess.tar.bz2 $dstFolder$dateToProcess.tar; del $dstFolder$dateToProcess.tar")
Должно быть следующее:
$block = [scriptblock]::Create("7z a -ttar $dstFolder$dateToProcess.tar $srcFolder$dateToProcess; 7z a -tbzip2 $dateToProcess.tar.bz2 $dstFolder$dateToProcess.tar; del $dateToProcess.tar")
"c: \ folder1 \ subfolder1" добавляется к вашему имени файла с помощью следующей команды:
7z a -tbzip2 $ dateToProcess.tar.bz2 $ dstFolder$ dateToProcess.tar