public bool UploadCloudFile(FileBlock file, string destinationPath = null) { bool status = false; try { using (var client = DriveClient.GetInfo()) { using (var stream = new FileStream(file.path, FileMode.OpenOrCreate)) { FilesResource.CreateMediaUpload request = new FilesResource.CreateMediaUpload(client, new Google.Apis.Drive.v3.Data.File { Name = file.Name, Parents = file.Parent, }, stream, file.mimeType); request.ChunkSize = 1024 * 1024; Task initiateSessionTask = Task.Run(() => request.InitiateSessionAsync()); initiateSessionTask.Wait(); Task <Google.Apis.Upload.IUploadProgress> uploadTask = Task.Run(() => request.UploadAsync()); uploadTask.Wait(); status = true; } } } catch (Exception e) { throw new Exception(e.Message + " " + e.StackTrace); } return(status); }
public async Task ResumableChunkUpload(string filePath) { using (var client = DriveClient.GetInfo()) { try { FileStream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read); FilesResource.CreateMediaUpload request = new FilesResource.CreateMediaUpload(client, new Google.Apis.Drive.v3.Data.File { Name = "new File", Parents = new List <string>() { "1K46j8qE2sOiFAMNvSz21xFxgpVTYlcWm" }, }, stream, "video/mpeg4"); request.ChunkSize = 1024 * 1024; await request.InitiateSessionAsync(); Task <Google.Apis.Upload.IUploadProgress> uploadTask = request.UploadAsync(); for (var i = 0; i < 1000; i++) { System.Threading.Thread.Sleep(1000); Console.WriteLine(request.GetProgress().BytesSent); } await uploadTask; } catch (Exception e) { throw new Exception(e.Message + " " + e.StackTrace); } } }