ssh.net ライブラリを使用して、圧縮された GZipStream を sftp サーバーにアップロードしようとしています。問題は、GZipStream を作成すると、それ以上読み取れないことです。以下は私のコードです:
using (SftpClient client = new SftpClient(connectionInfo))
{
client.Connect();
client.ChangeDirectory("/upload");
var uploadFileDirectory = client.WorkingDirectory + "\testXml.xml.gz";
using (GZipStream gzs = new GZipStream(stream, CompressionLevel.Fastest))
{
stream.CopyTo(gzs);
client.UploadFile(gzs, "text.xml.gz");
}
}
SftpClient の UploadFile はストリームを受け取り、圧縮されている GzipStream をアップロードする必要があります (ローカル ドライブに保存してから再度読み取る必要はありません)。しかし、GZipStream は圧縮されていると読み取りが許可されません。gzipstream using 句の外でアップロードを試みましたが、ストリームにアクセスできないと表示されます。
どうすればこれにアプローチできますか?この方法で直接行うことも可能ですか、それともローカルドライブに書き込んでからアップロードする必要がありますか...