Python:实现用socket传输文件
python传输文件最重要的有两步:
1).将要传输的文件的信息发送过去,包括文件包,大小以及其它信息;
2).发送端读取文件内容并发送过去,接受端将缓存里面的内容写入文件.
发送端:
python传输文件最重要的有两步:
1).将要传输的文件的信息发送过去,包括文件包,大小以及其它信息;
2).发送端读取文件内容并发送过去,接受端将缓存里面的内容写入文件.
发送端:
图片服务有两种问题,一是存储问题,二是访问量问题。
存储问题就是硬盘容量问题,花钱买硬盘就可以了,看似简单,但着实也是最苦的问题。按目前探索来看,最好的方式是:在任何时刻遇到硬盘空间不够时,买颗硬盘插上,最多改改配置,就能立刻利用;另外,硬盘要能充分利用,不然图片存储量大再加上备份,很恐怖,最好是每颗硬盘都用上100%的空间。
访问量也是个大问题,如果服务不允许防盗链,那么访问量会引起带宽、服务器压力等问题,有钱的话直接扔CDN,没钱或者有更多的钱,就自己做吧。根据垣古不变的真理“越老的图,访问量也相对较少”这一点,分成两大部分,一边处理最新的图片,一边处理老旧的图片。最新的图片访问量大,但存储量较少;老图片访问量低,但存储量大。
大概分析完了,开始制定方案。
实际上是app_nginx_squid_nginx的结构,nginx顶在最前面,然后后面有比nginx更多的squid。
这个架构的特点是扩展了squid的功能,并且可以将很多请求绕过squid,实际应用时仍然出现一点问题,并在此系统的超级负荷下收获了不少经验。此系统带图片的负荷每日在2亿-5亿之间,nginx代理全部机器加起来每秒处理的并发数日常总共是10000左右。
只需要在Nginx负载均衡服务器上,利用sub_filter指令在输出的HTML中增加一行:
就可以实现在IE及IE内核浏览器下,所有网站变灰色。
location /images/ {
alias /data/images/;
valid_referers none blocked server_names *.linuxany.com linuxany.com ;
if ($invalid_referer) {return 403;}
}
第二种:用tar命令批量解压某个文件夹下所有的tar.gz文件
第三种:
这条命令可解压当前目录下的所有bz2文件,maxdepth表示搜索深度,1代表只搜索当前目录
第四种:
排除指定目录:
排除指定文件: