c# файл с Google Drive - PullRequest
       67

c# файл с Google Drive

3 голосов
/ 08 апреля 2020

Привет! Я хочу загрузить файл на диск Google, но каждый раз, когда я получаю эту ошибку, ссылка на объект не установлена ​​на экземпляр объекта. Я думаю, что эта серия видео ссылка . Я приняла запрос на загрузку с Google Drive. Я пробовал загружать zip, jpg, txt, но та же ошибка. И я пытаюсь Google.Apis.Drive.v2, но та же ошибка. Что я могу сделать? Пожалуйста, помогите извините мой Engli sh: (

private static string ApplicationName = "MysqlYedekleme";
    private static string FolderId = "1g_PTi5lQBCbZBax_3foZPdiECOC7cSaU";
    private static string filename = "test.rar";
    private static string filePath = @"E:\yedekdeneme\test.rar";
    private static string contentType = "application/zip";
    //drve
    private void Form1_Load(object sender, EventArgs e)
    {
        UserCredential credential = GetUserCredential();
        DriveService service = GetDriveService(credential);
        uploadFileDrive(service, filename, filePath, contentType);
    }

    private static UserCredential GetUserCredential()
    {
        using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
        {
            string creadPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
            creadPath = Path.Combine(creadPath, "driveApiCredentials", "drive-credentials.json");
            return GoogleWebAuthorizationBroker.AuthorizeAsync(

                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "User",
                CancellationToken.None,
                new FileDataStore(creadPath, true)).Result;

        }
    }

    private static DriveService GetDriveService(UserCredential credential)
    {
        return new DriveService
            (new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName = ApplicationName,
            });

    }
    private static string uploadFileDrive(DriveService service, string filename, string filePath, string contentType)
    {

        try
        {
           var fileMetadata = new Google.Apis.Drive.v3.Data.File();
        fileMetadata.Name = Path.GetFileName(filePath);
        fileMetadata.MimeType = "application/zip";
                  fileMetadata.Parents = new List<string> { FolderId };

        FilesResource.CreateMediaUpload request;
        using (var stream = new System.IO.FileStream(filePath, System.IO.FileMode.Open))
        {
            request = service.Files.Create(fileMetadata, stream, contentType);
            request.Fields = "id";
            request.Upload();
        }
        var file = request.ResponseBody;
        return file.Id;
        }
        catch (Exception exc)
        {

            System.Diagnostics.Debug.WriteLine("geldi:"+exc.Message);
        }


    }
...