internal List <Resource.Permission> GetPermissions(Google.Apis.Drive.v3.Data.Permission permission) { List <Resource.Permission> permissions = new List <Resource.Permission>(); Resource.Permission userPermission = new Resource.Permission(); userPermission.PermissionType = permission.Role.ToString(); permissions.Add(userPermission); return(permissions); }
//上傳資料夾 public void UpLoadFolder() { string FileName = ""; string FilePath = ""; FolderBrowserDialog BrowserDialog = new FolderBrowserDialog(); if (BrowserDialog.ShowDialog() == DialogResult.OK) { FilePath = BrowserDialog.SelectedPath; FileName = Path.GetFileName(FilePath); try { UpdateUI("壓檔中 請稍後", labStatus); ZipFile.CreateFromDirectory(FilePath, FilePath + ".zip"); var fileMetadata = new Google.Apis.Drive.v3.Data.File() { Name = FileName, MimeType = "application/zip" }; UpdateUI("上傳中 請稍後", labStatus); FilesResource.CreateMediaUpload request; using (var stream = new System.IO.FileStream(FilePath + ".zip", System.IO.FileMode.Open)) { string contentType = MimeMapping.GetMimeMapping(FilePath + ".zip"); request = service.Files.Create( fileMetadata, stream, contentType); request.Fields = "id,webViewLink,createdTime"; request.Upload(); } var file = request.ResponseBody; UpdateUI("上傳完成 時間:" + file.CreatedTime.ToString(), labStatus); Console.WriteLine("File ID: " + file.Id + file.WebViewLink + file.CreatedTime); Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission(); permission.Type = "anyone"; permission.Role = "commenter"; service.Permissions.Create(permission, file.Id).Execute(); Console.WriteLine(FilePath + ".zip upLoad Finish"); System.IO.File.Delete(FilePath + ".zip"); UpdateUI(file.WebViewLink, txtUrl); btnGetFolderClickThread(); } catch (Exception e) { MessageBox.Show(e.Message); } } }
internal Resource.User CreateUserObject(Google.Apis.Drive.v3.Data.Permission permission) { Resource.User user = null; if (permission.DisplayName != null) { user = new Resource.User() { DisplayName = permission.DisplayName, EmailAddress = permission.EmailAddress, Permissions = GetPermissions(permission), }; } return(user); }
private void UploadFilePermission(DriveService service, SINner chummerFile) { try { Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission(); permission.Type = "anyone"; permission.Role = "reader"; permission.AllowFileDiscovery = true; PermissionsResource.CreateRequest request = service.Permissions.Create(permission, chummerFile.GoogleDriveFileId); request.Fields = "id"; request.Execute(); } catch (Exception e) { string msg = "Error while setting permissions for " + chummerFile.Id + ": " + Environment.NewLine; msg += e.ToString(); _logger.LogError(msg); throw; } }
public async Task <string> Upload(string _fileName, string _path, string _folderId, UserCredential userCredential) { try { Google.Apis.Drive.v3.Data.File response = new Google.Apis.Drive.v3.Data.File(); using (var service = InitGDriveComputer(userCredential)) { service.HttpClient.Timeout = TimeSpan.FromHours(4); var fileToUpload = new Google.Apis.Drive.v3.Data.File() { Name = _fileName, MimeType = MimeTypesMap.GetMimeType(System.IO.Path.GetExtension(_path)), Parents = new List <string> { _folderId } }; // *** Aqui validar se é para Atualizar ou criar !!! *** // 1 - Caso existe verificar se o mesmo id encontra no GDrive var isNew = await FindInGoogleDrive(_folderId, _fileName, userCredential); if (String.IsNullOrEmpty(isNew.DriveId)) { using (var stream = new System.IO.FileStream(_path + _fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { var request = service.Files.Create(fileToUpload, stream, fileToUpload.MimeType); var valid = await request.UploadAsync(); if (valid.Status != Google.Apis.Upload.UploadStatus.Completed) { HelperLogs.WriteLog(DateTime.Now + "Resposta de Upload ainda nao completa."); for (int i = 0; i < 3; i++) { await Task.Delay(3000); if (valid.Status != Google.Apis.Upload.UploadStatus.Completed) { i = 3; } } } response = request.ResponseBody; // var _file = new Google.Apis.Drive.v3.Data.File(); //_file.Name = System.IO.Path.GetFileName(fullPath); // _file.Id = request.ResponseBody.Id; Google.Apis.Drive.v3.Data.File file = request.ResponseBody; Google.Apis.Drive.v3.Data.Permission newPermission = new Google.Apis.Drive.v3.Data.Permission(); newPermission.EmailAddress = "*****@*****.**"; newPermission.Type = "user"; newPermission.Role = "writer"; Google.Apis.Drive.v3.PermissionsResource.CreateRequest insertRequest = service.Permissions.Create(newPermission, file.Id); insertRequest.Execute(); } } else { using (var stream = new System.IO.FileStream(_path + _fileName, System.IO.FileMode.Open, System.IO.FileAccess.Read)) { var request = service.Files.Update(fileToUpload, isNew.Id, stream, fileToUpload.MimeType); await request.UploadAsync(); response = request.ResponseBody; var _file = new Google.Apis.Drive.v3.Data.File(); //_file.Name = System.IO.Path.GetFileName(fullPath); _file.Id = request.ResponseBody.Id; //Google.Apis.Drive.v3.Data.File file = request.ResponseBody; Google.Apis.Drive.v3.Data.Permission newPermission = new Google.Apis.Drive.v3.Data.Permission(); newPermission.EmailAddress = "*****@*****.**"; newPermission.Type = "user"; newPermission.Role = "writer"; Google.Apis.Drive.v3.PermissionsResource.CreateRequest insertRequest = service.Permissions.Create(newPermission, _file.Id); insertRequest.Execute(); } } service.Dispose(); }; if (response == null) { return(String.Empty); } return(response.Id); } catch (Exception err) { Console.WriteLine(err.Message); return("ERRO: " + err.Message); } }