Я пытаюсь использовать PowerShell для синхронизации файлов заработной платы, хранящихся на SFTP в SharePoint.У меня большая часть кода написана, единственное, что я не могу понять, это если есть способ избежать временной загрузки файла на диск.Учитывая чувствительность этих файлов, я предпочел бы хранить файлы как переменные, в отличие от того, как работает get-content, поэтому никто на подчиненном сервере Jenkins не сможет увидеть его содержимое или восстановить временные файлы.
Вот мойрабочий код, который загружает файл:
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)
$file = $session.ListDirectory("/") | select -ExpandProperty files | ? {$_.FileType -ne "D"} | select -First 1
$session.GetFiles($file, "c:\temp\$($file.name)", $False, $transferOptions)
$session.Close()
Есть ли что-то, что я могу использовать для замены второго параметра WinSCP.Session.GetFiles [C: \ temp \ $ ($ file.name)], которыйпозволил бы мне перенести файл прямо в память, чтобы я мог развернуться и выгрузить в SharePoint?
Если вам интересно, как я мог бы получить его в sharepoint, я бы использовал это с get-content без проблем:
$fileToUpload = get-content c:\temp\test.csv -Encoding Byte
$FileCreationInfo = New-Object Microsoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.Content = $fileToUpload
$FileCreationInfo.Overwrite = $true
$FileCreationInfo.Url = "test.csv"
$Upload = $Folder.Files.Add($FileCreationInfo)
$Ctx.Load($Upload)
$Ctx.ExecuteQuery()