Пример #1
0
        public bool FileSharePermission(string fileId, string permissionValue, string userRule)
        {
            //GetPremissionDetails(fileId);

            bool message = false;

            try
            {
                if (string.IsNullOrEmpty(userRule))
                {
                    userRule = "reader";
                }

                Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission();
                permission.Type         = "user"; // "user, anyone"
                permission.EmailAddress = permissionValue;
                permission.Role         = userRule;

                permission = service.Permissions.Create(permission, fileId).Execute();

                if (permission != null)
                {
                    message = true;
                }

                return(message);
            }
            catch (Exception ex)
            {
                message = false;
            }

            return(message);
        }
Пример #2
0
        // create sharing folder
        public static string CreateFolderWithSharingPermission(string FolderName /*, string EmailAddress, string UserRole*/)
        {
            try
            {
                //Create Folder in Google Drive
                Google.Apis.Drive.v3.DriveService service = GetService();
                var fileMetadata = new Google.Apis.Drive.v3.Data.File()
                {
                    Name        = FolderName,
                    MimeType    = "application/vnd.google-apps.folder",
                    Description = "File_" + System.DateTime.Now.Hour + ":" + System.DateTime.Now.Minute + ":" + System.DateTime.Now.Second
                };

                Google.Apis.Drive.v3.FilesResource.CreateRequest request = service.Files.Create(fileMetadata);
                request.Fields = "id";
                string Fileid = request.Execute().Id;

                Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission();

                permission.Type = "anyone"; // sharing permission
                //permission.EmailAddress = EmailAddress;
                permission.Role = "writer"; //all type of permission but not allow for delete file &folders

                permission = service.Permissions.Create(permission, Fileid).Execute();


                //if (UserRole == "writer" || UserRole == "reader")
                //{
                //    permission.Type = "anyone";
                //    permission.EmailAddress = EmailAddress;
                //    permission.Role = UserRole;

                //    permission = service.Permissions.Create(permission, Fileid).Execute();
                //}
                //else if (UserRole == "owner")
                //{
                //    permission.Type = "user";
                //    permission.EmailAddress = EmailAddress;
                //    permission.Role = UserRole;

                //    Google.Apis.Drive.v3.PermissionsResource.CreateRequest createRequestPermission = service.Permissions.Create(permission, Fileid);
                //    createRequestPermission.TransferOwnership = true;
                //    createRequestPermission.Execute();
                //}
                if (permission != null)
                {
                    return(Fileid);
                }
                else
                {
                    return("error");
                }
            }
            catch (Exception e)
            {
                return("An error occurred: " + e.Message);
            }
        }
Пример #3
0
        private static string uploadToDrive(string fileToUpload, string parentDriveFolder, string fileId)
        {
            var service = initGoogleAuth();

            Google.Apis.Drive.v3.Data.File fileMetaData = new Google.Apis.Drive.v3.Data.File();
            fileMetaData.Name    = Path.GetFileName(fileToUpload);
            fileMetaData.Parents = new string[] { parentDriveFolder };

            Console.WriteLine("Uploading to Google Drive: " + fileMetaData.Name);
            FilesResource.CreateMediaUpload createRequest = null;
            FilesResource.UpdateMediaUpload updateRequest = null;
            using (var stream = new FileStream(fileToUpload, FileMode.Open))
            {
                if (fileId != null)
                {
                    updateRequest        = service.Files.Update(new Google.Apis.Drive.v3.Data.File(), fileId, stream, null);
                    updateRequest.Fields = "id";
                    updateRequest.Upload();
                }
                else
                {
                    createRequest        = service.Files.Create(fileMetaData, stream, null);
                    createRequest.Fields = "id";
                    createRequest.Upload();
                }
            }
            fileId = createRequest != null ? fileId = createRequest.ResponseBody.Id : fileId;

            Google.Apis.Drive.v3.Data.Permission readPermission = new Google.Apis.Drive.v3.Data.Permission();
            readPermission.Role = "reader";
            readPermission.Type = "anyone";
            service.Permissions.Create(readPermission, fileId).Execute();

            string shareableUrl = "https://drive.google.com/uc?export=download&id=" + fileId;

            Console.WriteLine("Successfully uploaded " + fileMetaData.Name + ": " + shareableUrl);

            return(shareableUrl);
        }
Пример #4
0
 private void Request_ResponseReceived(Google.Apis.Drive.v3.Data.File obj)
 {
     if (obj != null)
     {
         Console.WriteLine("File was uploaded sucessfully--" + obj.Id);
         Console.WriteLine("Getting shareable link...");
         //완료되면 공유 가능한 링크를 받으세요:
         string fileId = obj.Id;
         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, fileId);
         try
         {
             request.Fields = "*";
             request.Execute();
         }
         catch (Exception e)
         {
             Console.WriteLine("Exception: " + e.Message);
         }
         FilesResource.ListRequest listRequest = service.Files.List();
         listRequest.Fields = "*";
         List <Google.Apis.Drive.v3.Data.File> files;
         Google.Apis.Drive.v3.Data.File        myFile = null;
         try
         {
             files  = listRequest.Execute().Files.ToList();
             myFile = files.Single(f => f.Id == fileId);
         }
         catch (Exception e)
         {
             Console.WriteLine("Exception2: " + e.Message);
         }
         string shareableLink = myFile.WebContentLink;
         Console.WriteLine("Shareable link to file: " + shareableLink);
     }
 }
Пример #5
0
        private void UploadFilePermission(DriveService service, SINnerUploadAble fileMetaData)
        {
            try
            {
                Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission
                {
                    Type = "anyone",
                    Role = "reader",
                    AllowFileDiscovery = true
                };

                PermissionsResource.CreateRequest request = service.Permissions.Create(permission, fileMetaData.GoogleDriveFileId);
                request.Fields = "id";
                request.Execute();
            }
            catch (Exception e)
            {
                string msg = "Error while setting permissions for " + fileMetaData.Id + ": " + Environment.NewLine;
                msg += e.ToString();
                _logger.LogError(msg);
                throw;
            }
        }
Пример #6
0
        // share file
        public static bool FileSharingPermission(string fileId /*, string EmailAddress, string UserRole*/)
        {
            try
            {
                var service = GetService();
                Google.Apis.Drive.v3.Data.Permission permission = new Google.Apis.Drive.v3.Data.Permission
                {
                    Type = "anyone", // sharing permission
                    //permission.EmailAddress = EmailAddress;
                    Role = "writer"  //all type of permission but not allow for delete file &folders
                };
                permission = service.Permissions.Create(permission, fileId).Execute();

                if (permission != null)
                {
                    return(true);
                }
                return(false);
            }
            catch (Exception e)
            {
                return(false);
            }
        }