【问题标题】:upload file google drive application上传文件谷歌驱动应用程序
【发布时间】:2019-05-02 20:18:01
【问题描述】:

我希望任何用户输入他的密码和他的电子邮件,然后在程序中选择文件(访问 BD)。然后按一个按钮将文件上传到他在 google drive 上的帐户。

这是我目前的代码,这会在我的计数中创建一个目录:

    UserCredential Credential;

        Credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            new ClientSecrets { ClientId = "client_id", ClientSecret = "client_secret" },
            new[] { DriveService.Scope.Drive, DriveService.Scope.DriveFile },
            "user",
            CancellationToken.None,
            new FileDataStore("Drive.Auth.Store")).Result;

        DriveService service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = Credential,
            ApplicationName = "Drive API hoteltactil",
        });

        Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
        body.Title = "NewDirectory2";
        body.Description = "Test Directory";
        body.MimeType = "application/vnd.google-apps.folder";
        body.Parents = new List<ParentReference>() { new ParentReference() { Id = "root" } };
        try
        {
            FilesResource.InsertRequest request = service.Files.Insert(body);
            request.Execute();
        }
        catch (Exception ex)
        {
            Console.WriteLine("An error occurred: " + ex.Message);
            Console.Read();
        }

【问题讨论】:

    标签: c# file-upload oauth-2.0 google-drive-api


    【解决方案1】:

    我不太确定你在问什么,但要更改文件的所有权,我已经这样做了:

     main
     {  
     Permission permission= new Permission();
     permission = share(service, file.Id, <user email>, "user", "owner");
     }
    
     public static Permission share(DriveService service, String fileId, String value,
      String type, String role)
        {
            Permission newPermission = new Permission();
            newPermission.Value = value;
            newPermission.Type = type;
            newPermission.Role = role;
            try
            {
                return service.Permissions.Insert(newPermission, fileId).Execute();
            }
            catch (Exception e)
            {
                Console.WriteLine("An error occurred: " + e.Message);
            }
            return null;
        }
    

    另外,如果你上传到根文件夹,你不需要指定body.Parents,因为根是基本文件夹(即自动父文件夹)

    【讨论】:

      【解决方案2】:

      我认为您不需要允许用户登录您的帐户,

      你可以创建一个链接 url,然后与感兴趣的用户分享这个链接,

      这样,他们只会看到相关文件并且也可以下载它......

      【讨论】:

        猜你喜欢
        • 2021-07-02
        • 1970-01-01
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-11
        相关资源
        最近更新 更多