CS2-106: Made google drive uploaded files accessible to everyone

This commit is contained in:
cult 2021-10-27 15:00:58 +05:00
parent 488107a804
commit 45df5bb015
2 changed files with 52 additions and 27 deletions

View File

@ -7,13 +7,14 @@ using Google.Apis.Util.Store;
using Google.Apis.Drive.v3.Data;
using System.IO;
using System.Collections.Generic;
using System.Linq;
// usage example at the very bottom
namespace ConsoleApp1
{
public class GoogleDriveFilesService
{
private static DriveService GetService()
public DriveService GetService()
{ // ключи для почты asbautodrilling@gmail.com.
var tokenResponse = new TokenResponse
{
@ -45,7 +46,6 @@ namespace ConsoleApp1
return service;
}
//public string CreateFolder(string parent, string folderName)
public string CreateFolder(string folderName) // Это fileName. У гугла почему-то все называется folder: и папка, и файл.
{ // С parent почему-то не дружит, выкидывает Exception.
var service = GetService();
@ -58,7 +58,6 @@ namespace ConsoleApp1
return file.Id;
}
//public string UploadFile(Stream file, string fileName, string fileMime, string folder, string fileDescription)
public string UploadFile(Stream file, string fileName, string fileMime, string fileDescription)
{
DriveService service = GetService();
@ -79,14 +78,12 @@ namespace ConsoleApp1
return request.ResponseBody.Id;
}
//public IEnumerable<Google.Apis.Drive.v3.Data.File> GetFiles(string folder)
public IEnumerable<Google.Apis.Drive.v3.Data.File> GetFiles()
public IEnumerable<Google.Apis.Drive.v3.Data.File> GetAllFiles()
{
var service = GetService();
var fileList = service.Files.List();
// Это выражение ниже тоже чот не работает, выкидывает Exception. Без них выгружаются все файлы и
// папки водин список.
fileList.Fields = "files(id, webViewLink, size)";
//fileList.Q =$"mimeType!='application/vnd.google-apps.folder' and '{folder}' in parents";
//fileList.Fields = "nextPageToken, files(id, name, size, mimeType)";
@ -104,6 +101,15 @@ namespace ConsoleApp1
return result;
}
public Google.Apis.Drive.v3.Data.File GetFileById(string idFile)
{
var service = GetService();
var fileList = service.Files.List();
fileList.Fields = "files(id, webViewLink, size)";
var filesResult = fileList.Execute();
return filesResult.Files.FirstOrDefault(f => f.Id == idFile);
}
public void DeleteFile(string fileId)
{
var service = GetService();
@ -115,16 +121,24 @@ namespace ConsoleApp1
// usage example:
// var service = new GoogleDriveFilesService();
// var serviceWrapper = new GoogleDriveFilesService();
//
// var files = service.GetFiles();
// Console.WriteLine(files);
// //var files = serviceWrapper.GetAllFiles();
// var service = serviceWrapper.GetService();
// // foreach (var file in files)
// // {
// // var permission = new Permission() { Type = "anyone", Role = "reader"};
// // var createRequest = service.Permissions.Create(permission, file.Id);
// // createRequest.Execute();
// // Console.WriteLine(file.WebViewLink);
// // }
//
// var newFolderId = service.CreateFolder("testText.txt");
// Console.WriteLine(newFolderId);
//
// var path = "/home/vladimir/TestUploadFile.txt";
// var path = "/home/cult/First.xlsx";
// var fileInfo = new FileInfo(path);
// var fileStream = File.Open(path, FileMode.Open);
// var uploadedFileId = service.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
// Console.WriteLine(uploadedFileId);
// var fileStream = System.IO.File.Open(path, FileMode.Open);
// var uploadedFileId = serviceWrapper.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
// var permission = new Permission() { Type = "anyone", Role = "reader"};
// var addPermissionRequest = service.Permissions.Create(permission, uploadedFileId);
// addPermissionRequest.Execute();
// var file = serviceWrapper.GetFileById(uploadedFileId);
// Console.WriteLine(file.WebViewLink);

View File

@ -1,5 +1,8 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Google.Apis.Drive.v3.Data;
namespace ConsoleApp1
{
@ -12,19 +15,27 @@ namespace ConsoleApp1
{
static void Main(/*string[] args*/)
{
var service = new GoogleDriveFilesService();
var serviceWrapper = new GoogleDriveFilesService();
var files = service.GetFiles();
Console.WriteLine(files);
//var files = serviceWrapper.GetAllFiles();
var service = serviceWrapper.GetService();
// foreach (var file in files)
// {
// var permission = new Permission() { Type = "anyone", Role = "reader"};
// var createRequest = service.Permissions.Create(permission, file.Id);
// createRequest.Execute();
// Console.WriteLine(file.WebViewLink);
// }
var newFolderId = service.CreateFolder("testText.txt");
Console.WriteLine(newFolderId);
var path = "/home/vladimir/TestUploadFile.txt";
var path = "/home/cult/First.xlsx";
var fileInfo = new FileInfo(path);
var fileStream = File.Open(path, FileMode.Open);
var uploadedFileId = service.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
Console.WriteLine(uploadedFileId);
var fileStream = System.IO.File.Open(path, FileMode.Open);
var uploadedFileId = serviceWrapper.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
var permission = new Permission() { Type = "anyone", Role = "reader"};
var addPermissionRequest = service.Permissions.Create(permission, uploadedFileId);
addPermissionRequest.Execute();
var file = serviceWrapper.GetFileById(uploadedFileId);
Console.WriteLine(file.WebViewLink);
}
}
}