내가 보려고 만든 블로그

google api 사용해서 폴더 만들고 그 안에 파일넣기 본문

c#

google api 사용해서 폴더 만들고 그 안에 파일넣기

hjh1023 2022. 10. 21. 19:54
반응형
 public static string DriveUploadBasic(string filePath, string forderID)
        {
            var credential = GoogleCredential.FromFile(PathToServiceAccountKeyFile)
                            .CreateScoped(DriveService.Scope.Drive);
            // Create Drive API service.
            var service = new DriveService(new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                //ApplicationName = "Drive API Snippets"
            });

            // Upload file photo.jpg on drive.
            var fileMetadata = new Google.Apis.Drive.v3.Data.File()
            {
                Name = "upload.txt", //업로드 파일명(드라이브 상에서 보여지는 이름)
                Parents = new List<String>() { forderID }
            };
            FilesResource.CreateMediaUpload request;
            // Create a new file on drive.
            using (var stream = new FileStream(filePath, FileMode.Open))
            {
                // Create a new file, with metadata and stream.
                request = service.Files.Create(
                    fileMetadata, stream, "text/plain"); //log도 똑같이 하면 됨!!
                    //fileMetadata, stream, "image/jpeg");
                request.Fields = "id";
                request.Upload();
            }
            var file = request.ResponseBody;
            // Prints the uploaded file id.
            MessageBox.Show("file id" + file.Id);
            return file.Id;
        }

업로드 함수를 이렇게 구글드라이브 폴더의 id를 받을수 있도록 수정한다.

버튼이벤트에서 폴더를 만들기 함수와 업로드 함수를 차례로 실행시켜준다.

private void btnTest_Click(object sender, EventArgs e)
{
    string folderID = DriveCreateFolder();
    DriveUploadBasic(UploadFileName, folderID);
}

실행되고 나면 이렇게 폴더안에 txt파일이 들어있는것을 확인할 수 있다.

반응형