2014-09-30 2 views
0

.NET을 사용하여 SFTP를 통해 파일을 전송하려고합니다. 내가 가진 문제는 매우 엄격한 보안으로 인해이 파일을 우리 환경의 디스크에 쓸 수 없다는 것입니다. 즉, SFTP에 파일을 업로드 할 수 없기 때문에 파일을 디스크에 씁니다. 클라이언트가 이미 파일을 검색하고 SFTP에서 파일을 처리하고 있으므로, 사용자가 아무 것도 변경할 필요가 없습니다..NET을 사용하여 SFTP를 통해 필요에 따라 파일을 스트리밍 할 수 있습니까?

이것이 가능하다면 제 3 자 라이브러리를 사용해야하므로 써드 파티 라이브러리를 사용하는 모든 솔루션을 사용할 수 있습니다.

가능 여부에 대한 의견이 있으십니까? 그렇다면 어떻게 할 수 있습니까?

감사합니다 :)

내가 디스크 일에 대해 충분히 분명 하나의 대답에서 확실하지

참고. 명확히하기 : 우리 환경에서 파일을 디스크에 쓸 수 없으며 에는 FTP 서버이 포함됩니다.

참고하면

그것은 우리의 SFTP 서버 (FTP 크러시) 디스크에 기록 할 수 없습니다를 구성 할 수 있습니다 (또는 적어도 암호화 된 파일을 디스크에 기록하고 해독 전송). 이는 정확하게 구성된 SFTP 서버로 스트리밍하면 문제가 해결 될 수 있음을 의미합니다.

주어진 답을 고려한 추가 연구를하고 후 내 솔루션

, 내 솔루션은 아마 http://sshnet.codeplex.com/ 같은 타사 라이브러리를 사용하는, 디스크에 쓰기 전에 파일을 암호화하기 위해 SFTP server를 구성하는 것입니다, 전송할 때 해독합니다.

+0

디스크에 저장되지 않지만 클라이언트가 URL을 통해 파일에 액세스하는 파일 업로드를 상상하는 방법은 무엇입니까? – Reniuz

+0

그게 내가 알아 내려고하는거야. –

답변

0

대부분의 타사 라이브러리는 데이터를 업로드 할 때 데이터 소스로 Stream 객체와 함께 작동하며 이에 대한 MemoryStream 인스턴스를 사용할 수 있다고 생각합니다.

+0

감사합니다. 유진. 파일을 디스크에 쓸 수 없기 때문에 파일을 업로드하는 것이 아니라 필요할 때 클라이언트에 스트리밍하길 원한다는 것을 알고 있습니까? –

+0

@StephenOberauer 방향은 중요하지 않으며 두 가지 경우 모두 동일합니다. 다운로드 할 때 MemoryStream 인스턴스로 스트리밍하거나 WriteRemoteFile() 대신 일부 ReadRemoteFile() 메서드를 사용하여 데이터 청크를 작성하고 그것은 당신이 필요로하는 곳입니다. –

+0

나는 SFTP 서버가 파일을 디스크에 쓰지 않도록 구성하거나 그렇게 할 때 암호화하도록 가정해야한다는 가정하에이 대답을 받아들입니다. –

1

당신은 sftp 클라이언트가 램 디스크 위치에 액세스하는 것을 허용 한 것으로 생각하십니까? 램 디스크에 파일을 쓰고 클라이언트가 램 디스크에서 파일을 검색하도록합니다.

+0

SFTP 서버라고 생각합니다. 고마워 ... 좋은 생각 :) –

관련 문제