public async Task <bool> SaveToCache(IBus bus, CacheRetentionCategory retentionCategory, string file) { if (!File.Exists(file)) { throw new FileNotFoundException("Unable to upload file to cache because file was not found", file); } var cacheConnectionInfoRequest = new CacheConnectionInfoRequest(); var requestClient = CreateRequestClient <CacheConnectionInfoRequest, CacheConnectionInfoResponse>(bus, BusConstants.CacheConnectionInfoRequestQueue); var response = await requestClient.Request(cacheConnectionInfoRequest); try { using (var client = new Sftp()) { client.Connect(response.Machine, (int)response.Port); Log.Information("connected to {host}:{port}", response.Machine, response.Port); client.Login(retentionCategory.ToString(), response.Password); Log.Information("{username} logged in successfully ", retentionCategory); client.Upload(file, "/", TraversalMode.NonRecursive, TransferMethod.Copy, ActionOnExistingFiles.OverwriteAll); return(true); } } catch (Exception ex) { Log.Error(ex, "Unexpexted error while uploading to cache"); } return(false); }
public async Task <string> GetFtpUrl(IBus bus, CacheRetentionCategory retentionCategory, string id) { Log.Information("GetDownloadLink started"); var cacheConnectionInfoRequest = new CacheConnectionInfoRequest(); var requestClient = CreateRequestClient <CacheConnectionInfoRequest>(bus, BusConstants.CacheConnectionInfoRequestQueue); var response = (await requestClient.GetResponse <CacheConnectionInfoResponse>(cacheConnectionInfoRequest)).Message; Log.Information("GetDownloadLink finished"); return($"sftp://{retentionCategory}:{response.Password}@{response.Machine}:{response.Port}/{id}"); }
public RetentionCategory(string s, CacheRetentionCategory cacheRetentionCategory) { CacheRetentionCategory = cacheRetentionCategory; RetentionSpan = CalcTimeSpanFromString(s); }