python网盘系统_一个简单的文件上传下载网盘系统-python

欢迎使用文件上传下载网盘系统

你好! 这款网盘系统非常简单,开发目的仅仅是为了香橙派等性能较差的ARM主板提供NAS的作用,如果您的电脑性能较好,建议使用next cloud或者其他开源系统。如果您能一起完善这套简单的文件上传下载网盘系统,我也将欢迎您,谢谢!

新的特征

我们对本网盘设计采用no-sql(无数据库),这意味着我们将会使用真实存储地址以及单人单账号登录的设计。

全新的界面设计 ,前端使用bootstrap4开发完成;

前后端分离 后端使用python-flask框架,前端可以在任何web服务器搭建;

极简设计 去除数据库,去除不要的任何负担;

响应式设计 手机电脑浏览都没问题;

目前所有功能

目录浏览

新建目录

文件下载

文件上传

文件分享

文件移动

文件重命名

云端压缩

云端解压

文件删除

在线预览图片

在线预览视频(原画预览,对带宽要求较高)

分享预览图片

分享预览视频(原画预览,对带宽要求较高)

项目浏览地址

http://182.92.98.89:82/

如何安装本系统

本系统分为前端和后端,前端仅需搭建可以访问即可,简简单单的html+css+js,您可以在任何服务器上运行这套前端系统。

作者使用nginx在Ubuntu搭建

建议不要再nginx的网站目录下启动python后端否则可能可以随意访问您的文件请在其他地方部署您的python后端

后端您需要安装python,在Ubuntu下

sudo apt-get install python3 ----安装python3模块

然后

sudo apt-get install python-pip3 ----安装 pip3 模块

然后安装flask、flask——cors

sudo pip3 install flask

sudo pip3 install flask_cors

以上教程来自网络收集,如有错误,请自行判断。

以下列出本系统后端所使用的全部库。

from flask import Flask,request,session,make_response,send_from_directory

from flask_cors import CORS

from threading import Thread # 创建线程的模块

import os

import os.path ,shutil

请根据要求安装所有的库,一般剩余的库都是自带的。

至此,环境已经全部安装完成。

如何运行本系统

先运行后端

python3 flask_opf.py

该文件是启动文件,包含所有请求的方法。

运行后将会得到请求地址

例如(以下地址是示例,请勿直接使用)

http://182.92.98.89:5000/

建议修改端口号

前端请在js文件夹找到一个叫adress.js的文件,打开并修改地址为您运行后端得到的请求地址。

例如(以下地址是示例,请勿直接使用)

var adress="http://182.92.98.89:5000/"

然后启动前端,启动方法请参考您安装的web服务器。

作者使用nginx,重启一下nginx即可

至此,您的网盘系统已经正常运行了。

登录默认密码及修改

默认账号和密码分别是123456、123456

修改请修改flask_opf.py文件中的/login的验证部分。

然后重新启动flask_opf.py文件。

更加专业的使用flask服务器

由于直接运行flask_opf.py文件是不能运用在生产环境,您可以使用uwsgi启动flask_opf.py文件,这样flask服务器将会更加稳定、性能更佳。

您可以参考 使用Flask+uwsgi+Nginx部署Flask正式环境.

文件存储地方

个人文件全部存储到与同级flask_opf.py文件下的文件夹files

后语

欢迎各位大佬前来对本渣渣代码修改的更加安全,更加多功能,偶也!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,这是一个技术问题,我可以回答。下面是一个简单Python类示例,可以用来上本地文件到百度盘: ```python import requests import json class BaiduNetdiskUploader: def __init__(self, access_token): self.access_token = access_token self.upload_url = 'https://pan.baidu.com/rest/2.0/xpan/file?method=upload&access_token=' + access_token def upload_file(self, file_path, save_path='/'): file_name = file_path.split('/')[-1] headers = {'User-Agent': 'Mozilla/5.0'} data = {'path': save_path + file_name} files = {'file': open(file_path, 'rb')} response = requests.post(self.upload_url, headers=headers, data=data, files=files) result = json.loads(response.text) if 'error_code' in result: print('Upload failed: ' + result['error_msg']) else: print('Upload success: ' + file_name) # 使用示例 access_token = 'your_baidu_netdisk_access_token' uploader = BaiduNetdiskUploader(access_token) uploader.upload_file('/path/to/your/local/file') ``` 在这个示例中,我们通过调用百度盘的API,使用access_token进行身份验证,并上本地文件到指定的目录。你需要将 `your_baidu_netdisk_access_token` 替换为你自己的百度盘access_token,`/path/to/your/local/file` 替换为你想要上的本地文件路径。 ### 回答2: 要使用Python编写一个类来实现将本地文件到百度盘,可以按照以下步骤进行编写: 1. 首先需要导入必要的模块,例如bypy和os模块。bypy是百度云盘的Python API接口库,可用于控制文件的上下载操作。 2. 创建一个类,例如BaiduNetDiskUploader,作为文件器。 3. 在类的构造函数中,可以初始化bypy的API对象,这需要输入百度云盘的应用授权信息。 4. 可以定义一个上文件的方法,例如upload_file方法,该方法需要入本地文件的路径作为参数。在方法体内,可以使用os.path模块获取文件名和文件夹路径。 5. 在upload_file方法中,可以调用bypy的upload方法,将本地文件到百度盘。upload方法需要入两个参数,分别是文件路径和上到百度盘的目标路径。 下面是一个示例代码: ```python import os import bypy class BaiduNetDiskUploader: def __init__(self, app_key, app_secret): self.client = bypy.BaiduYun(app_key, app_secret) def upload_file(self, file_path): file_name = os.path.basename(file_path) target_path = "/path/to/upload/destination/" # 设置上到百度云的目标路径 self.client.upload(file_path, target_path + file_name) # 示例用法 app_key = "your_app_key" app_secret = "your_app_secret" uploader = BaiduNetDiskUploader(app_key, app_secret) local_file_path = "/path/to/local/file.txt" uploader.upload_file(local_file_path) ``` 以上示例代码仅供参考,具体的百度云盘授权信息、文件路径等需要根据实际情况进行修改。另外,还可以根据需要添加其他功能,例如下载文件、创建文件夹等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值