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缓存信息的更多相关文章

  1. WordPress安装插件提示输入FTP账户信息

    在WP后台安装插件时提示输入FTP账户信息,其实出现这个的问题的原因是Apache/Nginx的执行身份非文件属主身份. 如果你使用的是独立服务器或VPS,WordPress的安装目录为 /home/ ...

  2. slabtop 监控实时内核片缓存信息

                                        使用 slabtop命令监控实时内核片缓存信息                                 默认情况下,sl ...

  3. linux vsftp查看ftp账号信息的方法

    linux vsftp查看ftp账号信息的方法 查看注册的FTP账号 在/etc/vsftpd/chroot_list 密码看不到 只能重置密码 passwd username

  4. 利用反射注册SpringCache的RedisCacheManager缓存信息

    项目开发中,SpringCache是一个非常方便的工具,但是在配置信息注册时,用枚举方式可以满足遍历,但却无法应用在@Cacheable注解里,因此可以通过静态类的方式,借助反射完成缓存信息注册. 配 ...

  5. Linux slabtop命令——显示内核片缓存信息

    Linux内核需要为临时对象如任务或者设备结构和节点分配内存,缓存分配器管理着这些类型对象的缓存.现代Linux内核部署了该缓存分配器以持有缓存,称之为片.不同类型的片缓存由片分配器维护. slabt ...

  6. HTTP 和FTP 状态信息总结(留着自己用)

    HTTP 状态信息 HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源H ...

  7. 如何在分布式环境中同步solr索引库和缓存信息

    天气依旧很好,主要是凉快.老习惯,我在北京向各位问好. 搜索无处不在,相信各位每天都免不了与它的亲密接触,那么我想你确实有必要来了解一下它们,就上周在公司实现的一个小需求来给各位分享一下:如何在分布式 ...

  8. 如何清除svn的账号缓存信息(solaris)

    如果我们不小心输入svn账号错误的话,后面就一直提示认证失败,不能checkout代码. 这个是因为svn把你输入的账号进行了缓存. 如果我们想重新输入新的账号,必须要清除缓存 svn存储账号的目录在 ...

  9. react 如何处理页面加载时无法将获取缓存信息存入全局变量中

    最近在做一个权限功能时,发现在读取用户公司ID进行列表查询 时,无法钭读取到缓存中的数据存入页面全局变量中进行加载查询 将问题代码整理出来 将信息存入缓存: let menuList = Helper ...

随机推荐

  1. u3d摄像机截图

    using System; using UnityEngine; using System.Collections; public class TestCamreaCapture1 : MonoBeh ...

  2. windows7中用vitualbox安装OS X 10.11 El Capitan 及 Xcode 7.0--转载

    在 Win 7或8 下使用 VirtualBOX 虚拟机安装 OS X 10.11 El Capitan 及 Xcode 7.0 来源:http://bbs.feng.com/read-htm-tid ...

  3. phpstrom+xdebug+chrome+postman调试工具搭建

    php是解释性语言,大部分调试的时候使用var_dump+exit就可以搞定了,但是在大项目或遇到了负载的问题的时候你就需要断点调试.变量打印.性能分析了,php也有非常程序的解决方案,我们现在就动手 ...

  4. 816E. Karen and Supermarket 树形DP

    LINK 题意:给出n个商品,除第一个商品外,所有商品可以选择使用优惠券,但要求其前驱商品已被购买,问消费k以下能买几个不同的商品 思路:题意很明显就是树形DP.对于一个商品有三种选择,买且使用优惠券 ...

  5. Network File System

    Network File System 2014-12-31 #system 接着上一篇博客Distributed Systems 分布式系统来扯淡,之前的博客一再在写文件系统,这次继续,只不过是分布 ...

  6. WPF技术点

    常用Path路径 正三角形(左):<Path Data="M40,0 L0,30 40,60 z" Stretch="Uniform"/> 正三角形 ...

  7. css_input[checked]复选框去掉默认样式并添加新样式

    效果对比: “\2713”实体符号√ :如有兴趣查看详细实体符号请点这里 代码实现: <!DOCTYPE html> <html> <head> <meta ...

  8. INIT_WORK

    借助runtime pm,在需要使用模块时,增加引用计数(可调用pm_runtime_get),不需要使用时,减少引用计数(可调用pm_runtime_put). 1.INIT_WORK(struct ...

  9. 64_t2

    texlive-biblatex-chem-doc-svn42065-33.fc26.2.no..> 24-May-2017 15:44 1044190 texlive-biblatex-che ...

  10. 64_n1

    NFStest-2.1.5-0.fc26.noarch.rpm 16-Feb-2017 16:19 544018 NLopt-2.4.2-11.fc26.i686.rpm 13-Feb-2017 23 ...