ASP.NET Web API コントロール
操作の実行
サービス > クラウド サービス > 操作の実行

Cloud API allows you to perform the following operations:

List Files

  1. Create an API method, say GetCloudData, to fetch or read the list of files and folders from the container.
    C#
    コードのコピー
    public class FolderFiles 
    { 
            public string ParentPath { get; set; } 
            public string Name { get; set; } 
            public int Type { get; set; } 
            public FolderFiles[] SubFolder { get; set; } 
            
            //ItemID is required only in case of Google Drive
            public string ItemID { get; set; } 
            
            public FolderFiles() 
            { 
                ParentPath = null; 
            } 
    } 
     
    public async Task<List<FolderFiles>> GetCloudData(string cloudName) 
    { 
                var applicationInitPath  ="FolderName";  // Initial path from where file list should be fetched
                string authority = System.Web.HttpContext.Current.Request.Url.Authority; 
                string apiUrl = authority + "/api/storage/List"; 
                string parentPath = "/" + cloudName + "/" + applicationInitPath); 
    
                using (HttpClient client = new HttpClient()) 
                { 
                    var url = new UriBuilder("http://" + apiUrl + parentPath); 
                    var response = await client.GetAsync(url.ToString()).ConfigureAwait(false); 
    
                    if (response.IsSuccessStatusCode) 
                    { 
                        var data = await response.Content.ReadAsStringAsync().ConfigureAwait(false); 
                        var table = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FolderFiles>>(data); 
    
                        foreach (var row in table) 
                        { 
                            row.ParentPath = parentPath; 
                            if (row.Type == 0) 
                            { 
                                row.SubFolder = new FolderFiles[0]; 
                            } 
                        } 
                        return table; 
                    } 
                } 
                return new List<FolderFiles>(); 
    }
    
  2. Create a method, say LazyLoading_GetCloudData, for fetching details for the specified folder.
    C#
    コードのコピー
    public async Task< List<FolderFiles>> LazyLoading_GetCloudData(string subPath, string parentPath, string cloudName, string itemId) 
            { 
                string authority = System.Web.HttpContext.Current.Request.Url.Authority; 
                string apiUrl = "http://" + authority + "/api/storage/List"; 
    
                using (HttpClient client = new HttpClient()) 
                { 
                    var url = new UriBuilder(apiUrl + parentPath); 
                                    
                    if (!string.IsNullOrEmpty(subPath)) 
                        url = new UriBuilder(url + "/?subpath=" + subPath); 
    
                    //While working with Google drive, itemId is required to make sure in which folder is working
                    if (!string.IsNullOrEmpty(itemId)) 
                        url = new UriBuilder(url + "?itemid=" + itemId); 
    
     
                    var response = await client.GetAsync(url.ToString()).ConfigureAwait(false); 
    
                    if (response.IsSuccessStatusCode) 
                    { 
                        var data = await response.Content.ReadAsStringAsync().ConfigureAwait(false); 
                        var table = Newtonsoft.Json.JsonConvert.DeserializeObject<List<FolderFiles>>(data); 
    
                        foreach (var row in table) 
                        { 
                            row.ParentPath = parentPath + "/" + subPath; 
                            if (row.Type == 0) 
                            { 
                                row.SubFolder = new FolderFiles[0];                         
                            } 
                        } 
                        return table; 
                    } 
                } 
                return new List<FolderFiles>(); 
    }
    

Upload File

To upload a file to the container, call C1WebAPI and refer to the specified location in code:

C#
コードのコピー
var baseUrl = window.location.origin;//"http://localhost:9272/";

function Upload() { 
            var file = document.getElementById("file").files[0]; 
            var data = new FormData(); 
            data.append("file", file); 

            var url = baseUrl+'api/storage/' + cloudName + "/" + folderPathToUploadFile+ "/" + file.name; 
                        
            //This code is only for using Google Drive service
            if (itemId != null) { 
                url = url + "?itemid=" + itemId; 
            } 

            $.ajax({ 
                url: url, 
                type: 'POST', 
                data: data, 
                cache: false, 
                contentType: false, 
                processData: false 
                                
            }).then(function (res) { 
                alert("Uploaded") 
            }) 
        }

Download File

To download a file, create anchor element with the URL “api/storage”+ filepath and call click method using the following code:

C#
コードのコピー
var baseUrl = window.location.origin;//"http://localhost:9272/"; 
function Download() { 
                var url = baseUrl+'/api/storage/' + cloudName + "/" + folderPathToDownloadFile + "/" + FileNameToDownloadwithExtension;  
                var elem = wijmo.createElement(""); 
                elem.click(); 
            }

Delete File

To delete a file, use the following code:

C#
コードのコピー
var baseUrl = window.location.origin;//"http://localhost:9272/"; 
function DeleteFile() { 
                var url = baseUrl+'api/storage/' + cloudName + "/" + folderPathToDeleteFile + "/?subpath=" + FileNameToDeleteWithExtn; 
        
                //This code is only for using Google Drive service
                if (itemId != null) { 
                     url = url + "?itemid=" + itemId; 
                } 

                $.ajax({ 
                    url: url, 
                    type: 'DELETE', 
                    cache: false, 
                    contentType: false, 
                    processData: false, 

                    success: function (data, success, obj) { 
                        alert("Deleted"); 
                        refreshTree(); 
                    } 
                }); 
            }