public static async Task <FileSystemResult <AmazonFileSystem> > Create(string fname, IOAuthProvider provider, Dictionary <string, object> settings, string pluginanme, string userauthorization = null) { AmazonFileSystem am = new AmazonFileSystem(provider); am.FS = am; am.OAuth.OAuthUrl = AmazonOAuth; am.OAuth.EndPointUrl = AmazonEndpoint; am.OAuth.OAuthLoginUrl = AmazonOAuthLogin; am.OAuth.DefaultScopes = AmazonScopes; bool userauth = !string.IsNullOrEmpty(userauthorization); if (userauth) { am.DeserializeAuth(userauthorization); } FileSystemResult r = await am.OAuth.Login(settings, pluginanme, userauth, false); if (!r.IsOk) { return(new FileSystemResult <AmazonFileSystem>(r.Error)); } r = await am.CheckExpirations(); if (!r.IsOk) { return(new FileSystemResult <AmazonFileSystem>(r.Error)); } string url = AmazonRoot.FormatRest(am.OAuth.EndPoint.MetadataUrl); FileSystemResult <dynamic> fr = await am.List(url); if (!fr.IsOk) { return(new FileSystemResult <AmazonFileSystem>(fr.Error)); } foreach (dynamic v in fr.Result) { if (v.kind == "FOLDER") { am.SetData(JsonConvert.SerializeObject(v)); am.FsName = fname; await am.PopulateAsync(); return(new FileSystemResult <AmazonFileSystem>(am)); } } return(new FileSystemResult <AmazonFileSystem>("Amazon Root directory not found")); }
public async Task <FileSystemResult <IFileSystem> > InitAsync(string fname, IOAuthProvider provider, Dictionary <string, object> settings, string userauthorization = null) { string frname; if (settings.ContainsKey(ClientAppFriendlyName) && (settings[ClientAppFriendlyName] is string)) { frname = (string)settings[ClientAppFriendlyName]; } else { return(new FileSystemResult <IFileSystem>("Unable to find " + fname + " '" + ClientAppFriendlyName + "' in settings")); } FileSystemResult <AmazonFileSystem> r = await AmazonFileSystem.Create(fname, provider, settings, Name, userauthorization); if (!r.IsOk) { return(new FileSystemResult <IFileSystem>(r.Error)); } r.Result.AppFriendlyName = frname; return(new FileSystemResult <IFileSystem>(r.Result)); }
public AmazonDirectory(string parentpath, AmazonFileSystem fs) : base(parentpath, fs, AmazonMappings.Maps) { IsPopulated = false; }
public AmazonObject(string parentname, AmazonFileSystem fs, Mappings maps) : base(parentname, maps) { FS = fs; }
public AmazonFile(string parentpath, AmazonFileSystem fs) : base(parentpath, fs, AmazonMappings.Maps) { }