본문 바로가기
이미지 매크로

C# .NET 매크로 프로그램 만들기. (구글 드라이브에서 파일을 다운로드 하는 벙법)

by 업무자동화 2024. 6. 25.
반응형

유료 매크로 프로그램 다운로드

http://ngmsoftware.com/bbs/board.php?bo_table=product_review 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

#매크로 #메크로 #매크로프로그램 #엔지엠소프트웨어 #엔지엠에디터 #엔지엠플레이어 #비활성매크로 #하드웨어매크로 #기계식매크로 #마우스광클릭 #키보드매크로 #이미지서치 #이미지매치 #블로그 #카페 #인스타그램 #유튜브 #소셜네트워크 #카카오톡 #텔레그램 #자동화

 

 

  • 엔지엠 커뮤니티 월 이용료: 4,500원, 1년 이용료: 55,000원 (전체 기능의 80프로)
  • 엔지엠 얼티밋 월 이용료: 6,500원, 1년 이용료: 77,000원 (전체 기능의 90프로)
  • 엔지엠 엔터프라이즈 월 이용료: 9,200원, 1년 이용료: 110,000원 (전체 기능 사용)

 

안녕하세요. 엔지엠소프트웨어입니다. 오늘은 간단한 내용이지만, 업무 자동화 RPA 매크로에서 유용하게 사용할 수 있는 구글 드라이브의 파일 다운로드 방법에 대해 알아보도록 하겠습니다. 구글 드라이브의 API는 간단하지만, 몇가지 테크닉이 필요합니다. 그리고, 엔지엠 매크로 6에서 사용하던 방식을 버리고 새롭게 만들게 되었습니다. 왜 엔지엠 6에서 사용하던 방식을 재사용하지 않았냐면, 마이크로소프트에서 WebClient는 더이상 사용하지 않기 때문입니다. 따라서 HttpClient를 사용해야 하는데요. 이 방식으로 처리하기 보다는 구글에서 제공해주는 코드를 사용하는게 더 깔끔하기 때문입니다.

 

이전에는 구글 API를 사용하지 않고, 전통적인 방식을 사용해서 처리했는데요. 이 방식에는 몇가지 문제점들이 존재했습니다. 그래서, 구글에서 제공해주는 공식적인 방법을 사용하는게 좋겠다는 판단이었습니다. 자~ 그럼 코딩에 앞서 모델을 하나 추가해볼께요. 아래와 같이 FileDownloadModel.cs 클래스를 추가 해줍니다.

 

 

코드는 구글에 자세하게 나와 있습니다. 구글 드라이브 API를 확인해보고 코드를 추가 해볼께요.

[ 구글 개발자 커뮤니티 ]

 

구글 개발자 커뮤니티에 접속하면 아래와 같이 언어별로 코드 샘플을 제공 해줍니다.

 

 

구글 드라이브에서 파일을 다운로드 하는 기능은 간단합니다. 아래와 같이 3개의 속성만 있으면 될거 같네요.

[LocalizedCategory("Action")]
[LocalizedDisplayName("GoogleDriveURL")]
[LocalizedDescription("GoogleDriveURL")]
[Browsable(true)]
[DefaultValue(null)]
public string? GoogleDriveURL { get; set; }

[LocalizedCategory("Action")]
[LocalizedDisplayName("SelectDirectory")]
[LocalizedDescription("SelectDirectory")]
[Browsable(true)]
[DefaultValue(null)]
[Editor(typeof(TypeEditor.FolderSelectorEditor), typeof(UITypeEditor))]
public string? DownloadPath { get; set; }

[LocalizedCategory("Action")]
[LocalizedDisplayName("FileName")]
[LocalizedDescription("FileName")]
[Browsable(true)]
[DefaultValue(null)]
public string? DownloadFileName { get; set; }

 

우선, 구글 드라이브에서 공유 받은 파일 주소(Link Address)를 입력 받고, 내 컴퓨터에 저장할 위치와 파일명을 입력합니다. 아래 구글 드라이브는 제가 사용하고 있는 계정입니다. 여기에 보면 파일도 있고, PDF 파일로 된 구글 독스도 있습니다. 파일을 다운로드 하려면 링크를 복사해야 합니다. 물론, 보안토큰에 대한 내용은 코딩하지 않았기 때문에 링크가 있는 모든 사용자가 다운로드 할 수 있도록 공유 정보를 변경해줘야 합니다.

 

 

실행 메소드의 내용은 아래와 같은데요. 구글에서 제공해주는 코드에서 10프로 정도만 변경하면 기능 개발이 끝납니다. 요즘은 프로그램 개발하기가 정말 좋아졌죠?

public override string? Execute(IPlayer player)
{
    var id = base.Execute(player);

    var regex = new Regex("/d/([a-zA-Z0-9_-]+)");
    var fileId = regex.Match(GoogleDriveURL).Value.Replace("/d/", string.Empty);

    if (GoogleDriveURL.Contains("/file/"))
        Ai.Api.GoogleService.Download.File(player, fileId, Path.Combine(DownloadPath, DownloadFileName)); // Google Drive
    else
        Ai.Api.GoogleService.Download.Pdf(player, fileId, Path.Combine(DownloadPath, DownloadFileName)); // Google Docs

    return id;
}

 

코드를 보면 정규식이 포함되어 있습니다. 실제로 우리가 알 수 있는 정보는 공유 파일 링크입니다. 그런데, 구글 개발자 커뮤니티의 구글 드라이브 파일 다운로드 코드를 보면 File ID를 인자(Arguments)로 받고 있습니다. 그렇다면 공유 파일 링크에서 File ID를 추출해야 합니다. 파일 아이디는 공유 링크 전체에서 /d/ 다음에 오는 파일 아이디를 정규식으로 처리 해줍니다. 매치하기 위한 패턴식에서 앞 구분자를 치환하여 삭제 해주면 파일 아이디만 추출할 수 있습니다.

 

참고로, 독스는 document/d/를 사용하고, 파일은 file/d/를 사용합니다. 이제 완성된 코드를 테스트 해볼까요?

https://youtu.be/t9m234-x46w

 

 

 

[ 각종 자동화 매크로 및 RPA 프로그램 제작 해드립니다. ]

[ 초보자도 쉽게 따라할 수 있는 기초 학습 강좌 보기 ]

 

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

 

반응형

댓글