forked from ddrilling/AsbCloudServer
CS2-106: Made google drive uploaded files accessible to everyone
This commit is contained in:
parent
488107a804
commit
45df5bb015
@ -7,13 +7,14 @@ using Google.Apis.Util.Store;
|
|||||||
using Google.Apis.Drive.v3.Data;
|
using Google.Apis.Drive.v3.Data;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
// usage example at the very bottom
|
// usage example at the very bottom
|
||||||
namespace ConsoleApp1
|
namespace ConsoleApp1
|
||||||
{
|
{
|
||||||
public class GoogleDriveFilesService
|
public class GoogleDriveFilesService
|
||||||
{
|
{
|
||||||
private static DriveService GetService()
|
public DriveService GetService()
|
||||||
{ // ключи для почты asbautodrilling@gmail.com.
|
{ // ключи для почты asbautodrilling@gmail.com.
|
||||||
var tokenResponse = new TokenResponse
|
var tokenResponse = new TokenResponse
|
||||||
{
|
{
|
||||||
@ -45,7 +46,6 @@ namespace ConsoleApp1
|
|||||||
return service;
|
return service;
|
||||||
}
|
}
|
||||||
|
|
||||||
//public string CreateFolder(string parent, string folderName)
|
|
||||||
public string CreateFolder(string folderName) // Это fileName. У гугла почему-то все называется folder: и папка, и файл.
|
public string CreateFolder(string folderName) // Это fileName. У гугла почему-то все называется folder: и папка, и файл.
|
||||||
{ // С parent почему-то не дружит, выкидывает Exception.
|
{ // С parent почему-то не дружит, выкидывает Exception.
|
||||||
var service = GetService();
|
var service = GetService();
|
||||||
@ -58,7 +58,6 @@ namespace ConsoleApp1
|
|||||||
return file.Id;
|
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)
|
public string UploadFile(Stream file, string fileName, string fileMime, string fileDescription)
|
||||||
{
|
{
|
||||||
DriveService service = GetService();
|
DriveService service = GetService();
|
||||||
@ -79,14 +78,12 @@ namespace ConsoleApp1
|
|||||||
return request.ResponseBody.Id;
|
return request.ResponseBody.Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
//public IEnumerable<Google.Apis.Drive.v3.Data.File> GetFiles(string folder)
|
public IEnumerable<Google.Apis.Drive.v3.Data.File> GetAllFiles()
|
||||||
public IEnumerable<Google.Apis.Drive.v3.Data.File> GetFiles()
|
|
||||||
{
|
{
|
||||||
var service = GetService();
|
var service = GetService();
|
||||||
|
|
||||||
var fileList = service.Files.List();
|
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.Q =$"mimeType!='application/vnd.google-apps.folder' and '{folder}' in parents";
|
||||||
//fileList.Fields = "nextPageToken, files(id, name, size, mimeType)";
|
//fileList.Fields = "nextPageToken, files(id, name, size, mimeType)";
|
||||||
|
|
||||||
@ -104,6 +101,15 @@ namespace ConsoleApp1
|
|||||||
return result;
|
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)
|
public void DeleteFile(string fileId)
|
||||||
{
|
{
|
||||||
var service = GetService();
|
var service = GetService();
|
||||||
@ -115,16 +121,24 @@ namespace ConsoleApp1
|
|||||||
|
|
||||||
// usage example:
|
// usage example:
|
||||||
|
|
||||||
// var service = new GoogleDriveFilesService();
|
// var serviceWrapper = new GoogleDriveFilesService();
|
||||||
//
|
//
|
||||||
// var files = service.GetFiles();
|
// //var files = serviceWrapper.GetAllFiles();
|
||||||
// Console.WriteLine(files);
|
// 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");
|
// var path = "/home/cult/First.xlsx";
|
||||||
// Console.WriteLine(newFolderId);
|
|
||||||
//
|
|
||||||
// var path = "/home/vladimir/TestUploadFile.txt";
|
|
||||||
// var fileInfo = new FileInfo(path);
|
// var fileInfo = new FileInfo(path);
|
||||||
// var fileStream = File.Open(path, FileMode.Open);
|
// var fileStream = System.IO.File.Open(path, FileMode.Open);
|
||||||
// var uploadedFileId = service.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
|
// var uploadedFileId = serviceWrapper.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
|
||||||
// Console.WriteLine(uploadedFileId);
|
// 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);
|
@ -1,5 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using Google.Apis.Drive.v3.Data;
|
||||||
|
|
||||||
namespace ConsoleApp1
|
namespace ConsoleApp1
|
||||||
{
|
{
|
||||||
@ -12,19 +15,27 @@ namespace ConsoleApp1
|
|||||||
{
|
{
|
||||||
static void Main(/*string[] args*/)
|
static void Main(/*string[] args*/)
|
||||||
{
|
{
|
||||||
var service = new GoogleDriveFilesService();
|
var serviceWrapper = new GoogleDriveFilesService();
|
||||||
|
|
||||||
var files = service.GetFiles();
|
//var files = serviceWrapper.GetAllFiles();
|
||||||
Console.WriteLine(files);
|
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");
|
var path = "/home/cult/First.xlsx";
|
||||||
Console.WriteLine(newFolderId);
|
|
||||||
|
|
||||||
var path = "/home/vladimir/TestUploadFile.txt";
|
|
||||||
var fileInfo = new FileInfo(path);
|
var fileInfo = new FileInfo(path);
|
||||||
var fileStream = File.Open(path, FileMode.Open);
|
var fileStream = System.IO.File.Open(path, FileMode.Open);
|
||||||
var uploadedFileId = service.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
|
var uploadedFileId = serviceWrapper.UploadFile(fileStream, fileInfo.Name, "", "uploaded");
|
||||||
Console.WriteLine(uploadedFileId);
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user