교육개발애플리케이션개발

C# 을 이용해 Nextcloud 조작

c#을 이용해서 Nextcloud을 컨트롤 하는 방법에 대해서 검토 중입니다.

일단 RestSharp라는 Oauth2 기능을 갖고 있는 서비스와 WebDavClient라는 nextcloud에서 기본적인 기능(파일 업로드,다운로드, 폴더 생성 등 유저관련 권한을 뺀 나머지 기능이라고 되어있음)을 사용할 수 있는 서비스를 탑재해서 제가 만들어 놓은 개인용 클라우드인 nextcloud에 접근해 보는 순차적 방법을 기술할 것입니다.

우선 RestSharp를 Nuget을 이용해서 가져와 보도록 하겠습니다…잘 안가져와집니다…이걸하려고 비주얼 스튜디오 2015 커뮤니티 버전을 최신으로 업데이트를 하는 중입니다.

업데이트 중…엄청나게 오래걸리네요..

왜 하는지는 잘 모르겠습니다. 프로젝트를 가져왔는데, 프로젝트 로드실패하면서 업데이트를 하려고 해서 그냥 하게 냅뒀더니 엄청난 양의 업데이트를 진행하고 있습니다.

RestSharp 에 대해서 알아보시려면 클릭하시기 바랍니다.

굳이 안해도 되는 작업이었던 것 같습니다….

RestSharp가 nuget을 통해 설치가 안될때, 클릭

결국 .NetFramWork 4.5.2를 설치하기로 했습니다.

설치 방법을 모를 때는 클릭

그러나 여전히 https://github.com/bnoffer/owncloud-sharp 이곳 소스는 동작하지 않았습니다.

그래서 새로 프로젝트를 4.5.2 버전으로 생성하고, 그곳에서 [도구]->[Nuget 패키지 관리자]->[패키지 관리자 콘솔]을 열고 다음과 같이 넣어주어서 RestSharp를 간신히 설치했습니다.

이러게 실패했으며,

이렇게 성공했습니다.

아무리 해도 여기에 있는 프로젝트를 컴파일 할 수 가 없었습니다.

결국 다른 방식으로 하기로 했습니다.

직접 소스를 가져와서 만들도록 하겠습니다.(이 프로그램을 테스트 하기 위해서는 타겟이 되는 nextcloud 서버가 있어야 하겠습니다.)

우선 준비해야 할 목록입니다.

  • nextcloud 서버의 그룹관리자 계정(슈퍼관리자일 필요는 없습니다.)
  • 위의 링크에 있는 깃허브 소스코드
  • visual studio community 2015 – 닷넷 4.5.2 버전 설치

  1. 새프로젝트를 생성할 때, 닷넷4.5.2 버전 을 적용시켜줍니다.
  2. 아래 이미지와 같이 파일들을 복사해주세요.

      3. 참조는 다음 그림과 같이 nuget에서 받아주시면 됩니다.

위 그림은 Nuget에서 설치된 내용입니다. 참고하시면 되겠습니다.

      4. 각 파일들의 네임스페이스를 생성한 프로젝트 이름으로 변경해주세요.

      5. Form1에 버튼을 추가하시고, 버튼에 아래 코드를 넣어주세요.

var c = new Client(“https://”+”넥스트클라우드주소”, “넥스트클라우드아이디”, “넥스트클라우드비번”);

Console.Write(“Testing OCS:ListOpenRemoteShare … “);
if (!c.Exists(@”/폴더만들자”))
c.CreateDirectory(@”/폴더만들자”);
if(!c.Exists(@”/폴더만들자/안에또만들자”))
c.CreateDirectory(@”/폴더만들자/안에또만들자”);
if(!c.Exists(@”/폴더만들자/안에또만들자/업로드할파일.xlsx”))
{
// 이미 아시겠지만, [업로드할파일.xlsx]는 프로젝트의 bin/debug에 위치해있으면 되겠네요.
c.Upload(@”/폴더만들자/안에또만들자/업로드할파일.xlsx”, new FileStream(@”업로드할파일.xlsx”, FileMode.Open),”text/html”);
}

var result = c.IsShared(“/폴더만들자”) ? “is shared” : “is not shared”;
Console.WriteLine(“/폴더만들자 ” + result + “.”);
Console.ReadLine();

이상으로 c# 에서 클라우드 컨트롤을 마무리 하겠습니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다