首页
关于
Search
1
AdGuardHome 安装及部署教程
40,763 阅读
2
搭建基于telegram的无限网盘
10,112 阅读
3
关于微软Azure学生白嫖指南
9,744 阅读
4
Oracle开放全部端口并关闭防火墙
9,525 阅读
5
最新Cloudflare免费自选IP教程(非Partner)
9,341 阅读
默认分类
技术搬砖
教学设计
故事奇谈
生活琐事
错题分析
精品软件
登录
Search
标签搜索
docker
张至顺
PHP
图床
Cloudflare
金刚长寿功
PT
qBittorrent
阿里云
onedrive
telegram
代理
青龙
python
内网穿透
一键
telegraph
ipv6
cf_workers
serv00
myedunote
累计撰写
101
篇文章
累计收到
1
条评论
首页
栏目
默认分类
技术搬砖
教学设计
故事奇谈
生活琐事
错题分析
精品软件
页面
关于
搜索到
1
篇与
文件临时
的结果
2023-11-05
FileCodeBox文件快递柜搭建教程
匿名口令分享文本,文件,像拿快递一样取文件文件快递柜是一个开源项目,开源地址预览例站:https://share.lanol.cn暗黑模式 寄件 主要特色[x] 轻量简洁:Fastapi+Sqlite3+Vue2+ElementUI[x] 轻松上传:复制粘贴,拖拽选择[x] 多种类型:文本,文件[x] 防止爆破:错误次数限制[x] 防止滥用:IP限制上传次数[x] 口令分享:随机口令,存取文件,自定义次数以及有效期[x] 国际化:支持中文和英文[x] 匿名分享:无需注册,无需登录[x] 管理面板:查看所有文件,删除文件[x] 一键部署:docker一键部署[x] 自由拓展:S3协议、本地文件流,可根据需求在storage文件中新增存储引擎[x] 简单明了:适合新手练手项目[x] 终端下载:wget https://share.lanol.cn/share/select?code=83432部署方式一、Docker一键部署1.6版本AMDdocker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest1.6版本ARMdocker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:arm1.6版本注意这一版改变比较大,如果出现问题可以尝试清空/opt/FileCodeBox目录,有问题欢迎反馈留言注意,如果是第一次安装,请查看docker日志获取初始密码和后台地址,参考指令后台本地文件列表,需要将服务器文件移动至目录/opt/FileCodeBox/data/locals,这样就可以显示了。docker logs filecodebox更新方式// 更新 docker pull lanol/filecodebox:beta // 停止容器并删除 docker stop filecodebox && docker rm filecodebox // 重新运行容器 docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:latest2.0版本,开发中(AMD & ARM)默认信息:后端地址:/#/admin后台密码:FileCodeBox2023一键安装docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta一键更新docker pull lanol/filecodebox:beta && docker stop filecodebox && docker rm filecodebox && docker run -d --restart=always -p 12345:12345 -v /opt/FileCodeBox/:/app/data --name filecodebox lanol/filecodebox:beta二、宝塔部署环境准备[x] Centos7[x] 宝塔面板1. 安装Python项目管理器❗️❗️❗️ 注意:必须安装2.0版本,否则必失败2. 安装Python3.9.10点击设置->版本管理->Python版本->3.9.10[未安装]->安装版本安装完成3. 下载源码GitHub地址:https://github.com/vastsa/FileCodeBox选最新的版本就行复制链接地址回到宝塔,新建一个空白目录FileCodeBox进入目录,粘贴远程下载源码解压4. 添加项目打开Python项目管理器->添加项目启动成功5. 查看系统日志,获取初始化信息根据信息进入后台6、宝塔反向代理域名解析到ip之后,直接新增静态空网站先申请ssl证书,因为反代之后就无法申请了,需关闭反代添加反向代理7、配置修改如果有端口冲突,请找到根目录下的 /data/.env如果需要修改配置,可以将该文件放在/opt/FileCodeBox/目录下,并命名为.env,然后重启容器即可。 如果不是Docker,则需要在项目同目录下新建一个data文件夹,然后在创建.env文件# 端口 PORT=12345 # Sqlite数据库文件 DATABASE_URL=sqlite+aiosqlite:///database.db # 静态文件夹 DATA_ROOT=./static # 静态文件夹URL STATIC_URL=/static # 开启上传 ENABLE_UPLOAD=True # 错误次数 ERROR_COUNT=5 # 错误限制分钟数 ERROR_MINUTE=10 # 上传次数 UPLOAD_COUNT=60 # 上传限制分钟数 UPLOAD_MINUTE=1 # 删除过期文件的间隔(分钟) DELETE_EXPIRE_FILES_INTERVAL=10 # 管理地址 ADMIN_ADDRESS=admin # 管理密码 ADMIN_PASSWORD=admin # 文件大小限制,默认10MB FILE_SIZE_LIMIT=10 # 网站标题 TITLE=文件快递柜 # 网站描述 DESCRIPTION=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件 # 网站关键词 KEYWORDS=FileCodeBox,文件快递柜,口令传送箱,匿名口令分享文本,文件,图片,视频,音频,压缩包等文件 # 存储引擎 STORAGE_ENGINE=filesystem # 如果使用阿里云OSS服务的话需要额外创建如下参数: # 阿里云账号AccessKey KeyId=阿里云账号AccessKey # 阿里云账号AccessKeySecret KeySecret=阿里云账号AccessKeySecret # 阿里云OSS Bucket的地域节点 OSS_ENDPOINT=阿里云OSS Bucket的地域节点 # 阿里云OSS Bucket的BucketName BUCKET_NAME=阿里云OSS Bucket的BucketNameS3协议的对象存储配置❗️❗️❗️ 注意:必须配置SSL证书,否则无法下载有关V2.0bata版,作者几乎没有任何说明,也没有相关的教程,也没有说bata版是什么意思,甚至都不在GitHub的releases列表,但是bata版支持S3协议的对象存储以及onedrive雨云ROS是支持S3协议的对象存储,目前(2023年10月18日)正在免费公测注意:API端点前要加“https://,末尾不能加“/”,配置完成后需要重启FileCode项目OneDrive作为存储的配置方法仅支持工作或学校账户,并且需要有管理员权限以授权API1. 需要配置的参数file_storage=onedrive onedrive_domain=XXXXXX onedrive_client_id=XXXXXX-XXXXXX-XXXXXX-XXXXXX onedrive_username=XXXXXX@XXXXXX onedrive_password=XXXXXXonedrive_username和onedrive_password是你的账户名(邮箱)和密码,另外两个参数需要在微软Azure门户中注册应用后获取。2. 应用注册登录https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade,鼠标置于右上角账号处,浮窗将显示的域即为onedrive_domain的值。 点击左上角的+新注册,输入名称,受支持的帐户类型:选择任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户和个人 Microsoft 帐户(例如,Skype、Xbox)重定向 URI (可选):选择Web,并输入http://localhost完成注册后进入概述页面,在概要中找到应用程序(客户端)ID,即为onedrive_client_id的值。 此时还需要配置允许公共客户端流和API权限在左侧选择身份验证,找到允许的客户端流,选择是,并点击保存。 在左侧选择API权限,点击+添加权限,选择Microsoft Graph->委托的权限,并勾选下述权限:openid、Files中所有权限、User.Read,如下图所示。最后点击下方的添加权限。 最后点击授予管理员同意,并点击是,最终状态变为已授予。 3. 使用下述代码测试是否配置成功安装依赖:pip install Office365-REST-Python-Client# common.py import msal domain = 'XXXXXX' client_id = 'XXXXXX' username = 'XXXXXX' password = 'XXXXXX' def acquire_token_pwd(): authority_url = f'https://login.microsoftonline.com/{domain}' app = msal.PublicClientApplication( authority=authority_url, client_id=client_id ) result = app.acquire_token_by_username_password( username=username, password=password, scopes=['https://graph.microsoft.com/.default'] ) return result测试登录,如果成功打印出账户名,说明配置成功。from common import acquire_token_pwd from office365.graph_client import GraphClient try: client = GraphClient(acquire_token_pwd) me = client.me.get().execute_query() print(me.user_principal_name) except Exception as e: print(e)测试文件上传import os from office365.graph_client import GraphClient from common import acquire_token_pwd remote_path = 'tmp' local_path = '.tmp/1689843925000.png' def convert_link_to_download_link(link): import re p1 = re.search(r'https:\/\/(.+)\.sharepoint\.com', link).group(1) p2 = re.search(r'personal\/(.+)\/', link).group(1) p3 = re.search(rf'{p2}\/(.+)', link).group(1) return f'https://{p1}.sharepoint.com/personal/{p2}/_layouts/52/download.aspx?share={p3}' client = GraphClient(acquire_token_pwd) folder = client.me.drive.root.get_by_path(remote_path) # 1. upload file = folder.upload_file(local_path).execute_query() print(f'File {file.web_url} has been uploaded') # 2. create sharing link remote_file = folder.get_by_path(os.path.basename(local_path)) permission = remote_file.create_link("view", "anonymous").execute_query() print(f"sharing link: {convert_link_to_download_link(permission.link.webUrl)}")测试文件下载import os from office365.graph_client import GraphClient from common import acquire_token_pwd remote_path = 'tmp/1689843925000.png' local_path = '.tmp' if not os.path.exists(local_path): os.makedirs(local_path) client = GraphClient(acquire_token_pwd) remote_file = client.me.drive.root.get_by_path(remote_path).get().execute_query() with open(os.path.join(local_path, os.path.basename(remote_path)), 'wb') as local_file: remote_file.download(local_file).execute_query() print(f'{remote_file.name} has been downloaded into {local_file.name}')测试删除文件from office365.graph_client import GraphClient from common import acquire_token_pwd remote_path = 'tmp/1689843925000.png' client = GraphClient(acquire_token_pwd) file = client.me.drive.root.get_by_path(remote_path) file.delete_object().execute_query()
2023年11月05日
435 阅读
0 评论
0 点赞