ftp缓存信息
using System.Collections.Generic;
using NewTempo.Ftp;
using System.IO;
using NshowAdClient.NshowAdServices;
using NshowAdClient.Helper; namespace NshowAdClient.Services
{
public static class
FtpHelpService
{
static readonly Dictionary<int, FtpInfo> ClientFtpCache = new Dictionary<int, FtpInfo>(); static FtpInfo ShareFtpInfo { get; set; } static readonly object GetShareFtpLock = new object();
public static MyFtp GetShareFtp()
{
lock (GetShareFtpLock)
{
if (LoginUserHelper.Mode == RoleType.Client)
{
return GetClientFtp(LoginUserHelper.UserId);
} if (ShareFtpInfo == null)
{
using (var service = new NshowAdServiceClient())
{
ShareFtpInfo = service.GetFtpInfo();
}
} MyFtp ftp = new MyFtp(ShareFtpInfo.FtpAddress, ShareFtpInfo.User, ShareFtpInfo.Password);
return ftp;
//return new MyFtp("61.145.119.85:21", "wcf", "wcf");
}
} static readonly object GetClientFtpLock = new object();
public static MyFtp GetClientFtp(int clientId)
{
lock (GetClientFtpLock)
{
FtpInfo ftpInfo;
if (ClientFtpCache.ContainsKey(clientId))
{
ftpInfo = ClientFtpCache[clientId];
}
else
{
using (var service = new NshowAdServiceClient())
{
ftpInfo = service.GetClientFtpInfo(clientId);
ClientFtpCache.Add(clientId, ftpInfo);
}
} var ftp = new MyFtp(ftpInfo.FtpAddress, ftpInfo.User, ftpInfo.Password);
return ftp;
//return new MyFtp("61.145.119.85:21", "wcf", "wcf");
}
} public static MyFtp GetFtp(string ftpIp, string userName, string password)
{
return new MyFtp(ftpIp, userName, password);
} public static void CreateDir(string path, MyFtp myFtp)
{
var dirName = Path.GetDirectoryName(path);
bool ret = myFtp.CreateDirectory(dirName);
} public static FtpInfo GetClientFtpInfo(int clientId)
{
lock (GetClientFtpLock)
{
if (ClientFtpCache.ContainsKey(clientId))
{
return ClientFtpCache[clientId];
}
else
{
using (var service = new NshowAdServiceClient())
{
FtpInfo ftpInfo = service.GetClientFtpInfo(clientId);
ClientFtpCache.Add(clientId, ftpInfo);
return ftpInfo;
}
}
}
}
}
}
ftp缓存信息的更多相关文章
- WordPress安装插件提示输入FTP账户信息
在WP后台安装插件时提示输入FTP账户信息,其实出现这个的问题的原因是Apache/Nginx的执行身份非文件属主身份. 如果你使用的是独立服务器或VPS,WordPress的安装目录为 /home/ ...
- slabtop 监控实时内核片缓存信息
使用 slabtop命令监控实时内核片缓存信息 默认情况下,sl ...
- linux vsftp查看ftp账号信息的方法
linux vsftp查看ftp账号信息的方法 查看注册的FTP账号 在/etc/vsftpd/chroot_list 密码看不到 只能重置密码 passwd username
- 利用反射注册SpringCache的RedisCacheManager缓存信息
项目开发中,SpringCache是一个非常方便的工具,但是在配置信息注册时,用枚举方式可以满足遍历,但却无法应用在@Cacheable注解里,因此可以通过静态类的方式,借助反射完成缓存信息注册. 配 ...
- Linux slabtop命令——显示内核片缓存信息
Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存.现代Linux内核部署了该缓存分配器以持有缓存,称之为片.不同类型的片缓存由片分配器维护. slabt ...
- HTTP 和FTP 状态信息总结(留着自己用)
HTTP 状态信息 HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源H ...
- 如何在分布式环境中同步solr索引库和缓存信息
天气依旧很好,主要是凉快.老习惯,我在北京向各位问好. 搜索无处不在,相信各位每天都免不了与它的亲密接触,那么我想你确实有必要来了解一下它们,就上周在公司实现的一个小需求来给各位分享一下:如何在分布式 ...
- 如何清除svn的账号缓存信息(solaris)
如果我们不小心输入svn账号错误的话,后面就一直提示认证失败,不能checkout代码. 这个是因为svn把你输入的账号进行了缓存. 如果我们想重新输入新的账号,必须要清除缓存 svn存储账号的目录在 ...
- react 如何处理页面加载时无法将获取缓存信息存入全局变量中
最近在做一个权限功能时,发现在读取用户公司ID进行列表查询 时,无法钭读取到缓存中的数据存入页面全局变量中进行加载查询 将问题代码整理出来 将信息存入缓存: let menuList = Helper ...
随机推荐
- C++ ------ 互斥锁、原子操作的性能测试
atomic原子操作:是在新标准C++11,引入了原子操作的概念,并通过这个新的头文件提供了多种原子操作数据类型,例如,atomic_bool,atomic_int等等 测试程序 #include & ...
- ACE服务端编程5:ACE日志输出和跟踪
服务器程序经常需要在命令行中显示错误消息.状态或者用来跟踪程序的执行路径,最简单的方法是使用printf. ACE提供了更强大日志设施: 1.可以在编译时启用或禁用宏: 2.可以动态的启用或禁用宏: ...
- swift4.0中http连接(据于xcode9.3 URLSession)
NSURLSession是NSURLConnection的替代者,在2013年苹果全球开发者大会上(WWDC2013)随iOS7一起发布的,是对NSURLConnection进行了重构优化后的新的网络 ...
- nova-api源码分析(APP中用到的开源库)
源码版本:H版 1.paste.deploy 参考文章: http://pythonpaste.org/deploy/ http://blog.csdn.net/xiangmin2587/articl ...
- 有向图博弈+出度的结合 Codeforces Round #406 (Div. 2) C
http://codeforces.com/contest/787/problem/C 题目大意:有一个长度为n的环,第1个位置是黑洞,其他都是星球.已知在星球上(不含第一个黑洞)有一位神.有两个人, ...
- 数组与集合List的相互转化
数组转化为集合 #此运用的是Arrays中的asList方法,返回一个List集合 *当数组元素为基本数据类型是把整个数组当作一个元素放入List集合中,代码举例: ,,}; List<int[ ...
- 2017ACM暑期多校联合训练 - Team 2 1003 HDU 6047 Maximum Sequence (线段树)
题目链接 Problem Description Steph is extremely obsessed with "sequence problems" that are usu ...
- CMDB概述(二)
运维自动化路线: cmdb的开发需要包含三部分功能: ·采集硬件数据 ·API ·页面管理 执行流程:服务器的客户端采集硬件数据,然后将硬件信息发送到API,API负责将获取到的数据保存到数据库中, ...
- zedboard学习记录.2.PS+PL 流水灯与uart
1.建立一个工程. 硬件设计 2.IP integrator -> create block desgin;Run Block Automation. 3.add IP -> AXI GP ...
- 小程序_请求封装network
在utils目录下创建network.js文件封装请求 封装的network.js: //模块一,全局变量 let urlList = { host: 'http://47.106.25.53/', ...