description Simple web apllication to wrap & test net google drive client Google Drive.
Main wrapper is static class GDriveApi.Services.GoogleDriveService.
To authorize transfer path to your p12 key in method Authenticate
var keyPath = System.Web.Hosting.HostingEnvironment.MapPath(authKeyPath);
GoogleDriveService.Authenticate(keyPath);
After that you can use all api methods:
Get all root files:
var files = GoogleDriveService.GetRootFiles();
Get files in folder:
var folders = GoogleDriveService.GetFolders(folderId);
Get folders:
var files = GoogleDriveService.GetFiles(folderId);
Create folder:
GoogleDriveService.CreateFolder(new CreateFolderRequest {
folderName = newFolderName,
folderDesc = newDescription,
parentId = parentFolderId
});
Upload file:
GoogleDriveService.UploadSharedFile(stream, filename);
First, you must authenticate via service account with p12 key.
Now user created under owner sokolov@magora.systems.
Key places in root of web project To create new service account follow manual.
When you create service account you should authnticate with this key.
var keyPath = System.Web.Hosting.HostingEnvironment.MapPath(authKeyPath);
GoogleDriveService.Authenticate(keyPath);
There are realized some web api methods:
Url | Type | Description |
---|---|---|
api/files | GET | Get root files |
api/files/{parent} | GET | Get files in determined folder |
api/upload/save | POST | Save file on upload folder |
api/upload | POST | Save file on google disk and share it to anyone |
api/upload2 | POST | Save file on google disk and share it to anyone in determined folder (header: {parent: id}) |
api/file/{id} | DELETE | Delete file from Google disk |
api/share/{id} | POST | Share file to anyone |
api/folder | POST | Get root folders only |
api/folder/{parent} | GET | Get root folders only in determined folder |
api/folder | GET | Create new folder |
Public methods in GDriveApi.Services.GoogleDriveService:
Name | Parameters | Return | Description |
---|---|---|---|
Authenticate | string(path to key) | void | authorize service account & create service with p12 sertificate |
GetFolders | - | IEnumerable[FileModel] | Get all root folders |
GetFolders | string | IEnumerable[FileModel] | Get all folders parent folder |
CreateFolder | {folderName[string], folderDesc[string], parentId[string]} | FileModel | Get files in determined folder |
RetainFolders | IEnumerable[FileModel] | IEnumerable[FileModel] | filter files with not folder mime type |
GetRootFiles | - | IEnumerable[FileModel] | Get all files in root folder |
GetFiles | string | IEnumerable[FileModel] | Get all files parent folder |
GetFilesAsync | SearchFilter | Task[FileList] | Get all files parent folder async |
GetFiles | SearchFilter | IEnumerable[FileModel] | Create new folder |
MemorySelectedFolder | string | void | save selected folder in static field to work with after |
UploadSharedFileIn | stream, string, string | void | upload file to google drive from stream in determined folder and set permissions for anyone |
UploadSharedFileIn | bytes[], string, string | void | upload file to google drive from stream in determined folder and set permissions for anyone |
UploadFileIn | stream, string, string | void | upload file to google drive from stream in determined folder |
UploadFileIn | bytes[], string, string | void | upload file to google drive from stream in determined folder |
UploadSharedFile | stream, string | void | upload file to google drive from stream and set permissions for anyone |
UploadSharedFile | byte[], string | void | upload file to google drive from bytes and set permissions for anyone |
UploadFile | stream, string | void | upload file to google drive from stream |
UploadFile | byte[], string | void | upload file to google drive from bytes |
Share | string | void | set permissions to file for anyone |
ShareAsync | string | Task | set permissions to file for anyone async |
DeleteFile | string | void | delete file |
DeleteFileAsync | string | Task | delete file async |
Name | Fields | Description |
---|---|---|
FileModel | Id Name IconLink FileExtension Thumbnail Description WebContentLink Parents MimeType | Common fileds of google drive entities |
SearchFilter | PageSize[20] Query | Search filter model for advance filtering |
To advance serch files you can user google drive query field. see format here
Example:
GetFiles(new SearchFilter
{
Query = "modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')"
});
For test api was created angular ui application.
On first tab there are displays all files and folders which places in folder that selected above There are displayed file name, thumbnail, icon, file extension, and parents ids. Here you can download file, share file, and delete file by pressing proper action near. When you change selected folders, files on changet to files in selected folders, also list of folders refreshs too to folders with selected parent. When you create new folders or upload files, it will be added to selected folder.
Also on last tab created gallery with whole size images stored in google grive in selected folders.
- webApi
- Google.Apis.Drive.v3
- angularjs