2

WinSCP を使用して、SQL Server を SFTP サーバーに接続するための書き込みを行っています。変更ではなく、書き込みアクセスのみを持つ SFTP サーバーにファイルを書き込もうとしています。戻ってきたので困っています

リモート ファイル '/xxx.filepart' を作成できません。

ドキュメントによると、これは、ターゲット ディレクトリへの変更アクセス権がないためです。私はこれを行いましたWinSCP -> 環境設定 -> 耐久性 -> 無効にするファイル
をチェックしたところ、 (これは無効になっていることを意味すると思います)。実行しましたが、デフォルトの状態であると表示されます。winscp.iniResumeSupport2"echo $transferOptions.ResumeSupport"

このドキュメントを確認しました:
https://winscp.net/eng/docs/ui_pref_resume
https://winscp.net/eng/docs/library_transferoptions#resumesupport

ただし、PowerShell の例は表示されず、C# のみです。

$transferOptions.ResumeSupport.State = Off、 、およびその他のさまざまな順列を試し$transferOptions.ResumeSupport.Offました。これらのうちの 1 つは、読み取り専用であると述べています。

$transferOptionsここで変数であることは知っていますが、デフォルトのスクリプトから来ています。オブジェクトは転送オプションを決定します $transferOptions = New-Object WinSCP.TransferOptions

助けてくれてありがとう

編集:全体的な問題は、サーバーへの書き込みアクセス権しかなく、変更できないことです。新しいエラーが表示されます:「リモート ファイル '/xxx'.$$ を上書きできません。ドル記号は、作成しようとしているある種の一時ファイルのようです。これを引き起こしている設定を無効にする方法はありますか?

4

1 に答える 1

3

PowerShell で列挙を使用するための構文については、PowerShellからの WinSCP .NET アセンブリの使用に関する記事で説明されています。

列挙値には[Namespace.Type]::Member、たとえば、静的フィールド構文を使用してアクセスします[WinSCP.Protocol]::Sftp


PowerShell の例は、コマンド ドキュメントの.NET アセンブリへTransferResumeSupport.Stateの変換セクションにあります。getput

$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.ResumeSupport.State = [WinSCP.TransferResumeSupportState]::Off
$session.GetFiles(..., ..., $False, $transferOptions).Check()

WinSCP GUI は、コード テンプレート(TransferOptionsおよびTransferResumeSupportStateコードを含む) を生成することもできます。

于 2016-02-08T22:05:58.347 に答える