Używam WinSCP do zapisu, aby połączyć serwer SQL z serwerem SFTP. Próbuję napisać plik na serwerze SFTP, gdzie mam tylko dostęp do zapisu, a nie modyfikować. Mam problem, ponieważ wracam
Nie można utworzyć zdalnego pliku „/xxx.filepart”.
Dokumentacja sugeruje, że to dlatego, że nie mam modyfikacji dostępu do katalogu docelowego. ja to zrobiłem WinSCP -> Preferencje -> Wytrzymałość -> Wyłącz
Sprawdziłem winscp.ini
plik i ResumeSupport
jest 2
(Myślę, że to oznacza wyłączenie). Pobiegłem "echo $transferOptions.ResumeSupport"
i mówi, że jest w stanie domyślnym.
Sprawdziłem tę dokumentację:
https://winscp.net/eng/docs/ui_pref_resume
https://winscp.net/eng/docs/library_transferoptions#resumesupport
Jednak nie widzę przykładu PowerShell, tylko C #.
Próbowałem różnych permutacji $transferOptions.ResumeSupport.State = Off
, $transferOptions.ResumeSupport.Off
i cokolwiek. Jeden z nich mówi, że jest „tylko do odczytu”.
wiem $transferOptions
jest tutaj zmienną, ale pochodzi ze skryptu domyślnego. Obiekt określa opcje transferu $transferOptions = New-Object WinSCP.TransferOptions
Z góry dziękuję za pomoc
edytować: Ogólny problem polega na tym, że mam tylko dostęp do zapisu na serwerze, ale nie mogę go modyfikować. Pojawia się nowy błąd: „Nie można nadpisać pliku zdalnego” /xxx".$$. Wygląda na to, że znaki dolara to jakiś plik tymczasowy, który próbuje utworzyć. Czy istnieje sposób na wyłączenie tego ustawienia?
Odpowiedzi:
2 dla odpowiedzi № 1Składnia do korzystania z wyliczenia w PowerShell jest opisana w artykuł Korzystanie z zestawu WinSCP .NET z PowerShell.
Dostęp do wartości wyliczeniowych uzyskuje się za pomocą składni pola statycznego
[Namespace.Type]::Member
, na przykład[WinSCP.Protocol]::Sftp
.
Możesz znaleźć przykład PowerShell dla TransferResumeSupport.State
w Konwersja do zespołu .NET Sekcja get
i put
dokumentacja polecenia:
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.ResumeSupport.State = [WinSCP.TransferResumeSupportState]::Off
$session.GetFiles(..., ..., $False, $transferOptions).Check()
WinSCP GUI może również generować szablon kodu (włącznie z TransferOptions
i TransferResumeSupportState
kod) dla Ciebie.