使用python来搭建一个简易的文件下载环境以及用droopy来实现一个文件上传环境

ubuntu在安装的时候一般都是自带python环境的,大家可以查看一下
查看demo如下
在这里插入图片描述

用于共享的命令很简单
python2: python -m SimpleHTTPServer 8888
python3: python3 -m http.server 8888
后面的端口可以不写,默认是8000端口,记得服务器的防火墙要开一下8000端口

为了让它可以在后台运行,我就写了个简易脚本
然后
nohup ./share.sh >> share.log 2>&1 &
执行一下,这里的2>&1是指出现标准错误的时候也写到前面的share.log文件中
在这里插入图片描述
这样就可以提供一个可以下载的共享站点的,共享的就是脚本当前运行的目录

但是上面只能支持下载.并不支持上传,我们可以使用droopy来搭建一个简单的上传服务

使用droopy搭建上传服务

先上一波官网文档
http://stackp.online.fr/?spm=a2c6h.12873639.0.0.32284b6340954P&p=28

先要有python环境,不过ubuntu一般都是自带python环境的

可以使用pip安装,如果没有pip的话先安装一下pip
apt install python-pip

然后安装droopy

pip install droopy

安装完之后还要下载一个droopy.python的python脚本

wget http://stackp.online.fr/wp-content/uploads/droopy

下载完之后启动这个脚本就开启了droopy服务了

python ./droopy -m "now can upload file"

在这里插入图片描述

如果要在后台运行,可以把命令写成脚本,然后nohup后台运行
在这里插入图片描述

用nohup后台运行

nohup bash droopy.sh >> droopy.log 2>&1 &

默认是8000端口
在这里插入图片描述

当然也可以指定端口啦,可以指定的参数如下

Usage: droopy [options] [PORT]

Options:

  • -h, --help show this help message and exit
  • -d DIRECTORY, --directory DIRECTORY set the directory to upload files to
  • -m MESSAGE, --message MESSAGE set the message
  • -p PICTURE, --picture PICTURE set the picture
  • –dl provide download links
  • –save-config save options in a configuration file
  • –delete-config delete the configuration file and exit
本关任务:根据给出的基类Animal和main()函数。 1、根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,并匹配上需要的成员函数。 2、显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。 3、每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序,将这一数据成员作为抽象类Animal数据成员被各派生类使用。 下面是给出的基类Animal和main()函数: class Animal { public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; } }; int main( ) { Animal *p; Animal a = Animal(); a.cry(); Mouse m1("Jerry",'m'); p=&m1; p->cry(); Mouse m2("Jemmy",'f'); p=&m2; p->cry(); Cat c1("Tom"); p=&c1; p->cry(); Dog d1("Droopy"); p=&d1; p->cry(); Giraffe g1("Gill",'m'); p=&g1; p->cry(); return 0; } 下面是程序的运行结果: 不知哪种动物,让我如何学叫? 我叫Jerry,是一只公老鼠,我的叫声是:吱吱吱! 我叫Jemmy,是一只母老鼠,我的叫声是:吱吱吱! 我叫Tom,是一只猫,我的叫声是:喵喵喵! 我叫Droopy,是一条狗,我的叫声是:汪汪汪! 我叫Gill,是公长颈鹿,我的脖子太长,发不出声音来!
05-25
根据运行结果可以设计出以下类: ```cpp class Animal { public: virtual void cry() = 0; // 抽象函数 string name; // 动物名字,作为Animal的数据成员 }; class Mouse : public Animal { public: char sex; // 性别 Mouse(string n, char s) { name = n; sex = s; } void cry() { cout<<"我叫"<<name<<",是一只"; if (sex == 'm') cout<<"公老鼠,"; else cout<<"母老鼠,"; cout<<"我的叫声是:吱吱吱!"<<endl; } }; class Cat : public Animal { public: Cat(string n) { name = n; } void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; } }; class Dog : public Animal { public: Dog(string n) { name = n; } void cry() { cout<<"我叫"<<name<<",是一条狗,我的叫声是:汪汪汪!"<<endl; } }; class Giraffe : public Animal { public: char sex; // 性别 Giraffe(string n, char s) { name = n; sex = s; } void cry() { cout<<"我叫"<<name<<",是公长颈鹿,我的脖子太长,发不出声音来!"<<endl; } }; ``` Animal被设计为抽象类,具有纯虚函数cry()和数据成员name。Mouse、Cat、Dog、Giraffe都继承自Animal,并实现了cry()函数。在main()函数中,Animal *p;改为Animal *p=nullptr;,并将p = new Animal();删除。 ```cpp int main() { Animal *p = nullptr; // 初始化为nullptr Mouse m1("Jerry", 'm'); p = &m1; p->cry(); Mouse m2("Jemmy", 'f'); p = &m2; p->cry(); Cat c1("Tom"); p = &c1; p->cry(); Dog d1("Droopy"); p = &d1; p->cry(); Giraffe g1("Gill", 'm'); p = &g1; p->cry(); return 0; } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值