如何通过C#中的API将文件上传到Google云端硬盘

时间:2019-08-02 09:43:05

标签: c# .net google-drive-api

我目前正在尝试学习如何使用API​​,并想尝试Google Drive API。我一直在跟踪他们在开发人员站点上可用的文档,并设法使快速入门代码按预期工作,但是,当我随后使用他们必须的文档来上载文件时,我无法获取示例代码工作。

我已经修改了代码,以尝试调试该方法,因为我注意到request.ResponseBody始终返回null,我不确定是否应该等待该结果。删除尝试检索响应正文的尝试后,我进行了检查,但是驱动器尚未创建/上传.jpg文件。我尝试添加权限以查看是否可以更改任何内容,try catch不能恢复任何内容,并且该文件存在。

static void UploadFile(UserCredential credential)
        {
            /// Testing Upload File ///
            var fileMetadata = new Google.Apis.Drive.v3.Data.File();
            fileMetadata.Name = "Bullhorn.jpg";
            fileMetadata.Parents = new List<string> { "1Nnd-DI0RvuZgs_9kXCFuvuvnaCLdlovt" };
            fileMetadata.Permissions = new List<Permission> { new Permission() { Role = "owner" } };
            FilesResource.CreateMediaUpload request;
            DriveService driveService = new DriveService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });
            try
            {
                if (System.IO.File.Exists("files/Bullhorn.jpg"))
                {
                    using (var stream = new FileStream("files/Bullhorn.jpg", FileMode.Open))
                    {
                        request = driveService.Files.Create(fileMetadata, stream, "image/jpeg");
                        request.Fields = "id";
                        request.Upload();
                    }
                    var respose = request.ResponseBody;
                    while (respose == null)
                    {
                         respose = request.ResponseBody;
                    }
                    Console.WriteLine("File ID: " + respose.Id);
                }
                else
                {
                    Console.WriteLine("File not found");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }

如果身份验证是问题,我希望响应正文会回来说它未经授权。我通常希望在驱动器中或在父下关联的文件夹中创建一个.jpg文件。

0 个答案:

没有答案