分类 项目 下的文章 - 空痕博客 - 编程技术分享
首页
小记
php
python
uniapp
前端
其他
机器人
QQ机器人
项目
功能库
应用
其他页面
友情链接
用户留言
联系空痕
热门文章
PHP搭建QQ机器人(QQ官方)
下载文件到指定文件夹
UTS引用原生jar包进行原生插件开发
欢迎回来 Typecho !
上传文件到夸克网盘python代码
标签搜索
python
uniapp
PHP
VUE
UTS
uniapp-x
模板
夸克网盘
html
APP
KongHen
机器人
QQ
ID3
pyinstaller
redis
Echarts
邮箱
js
lyear
发布
登录
注册
找到
6
篇与
项目
相关的结果
2025-11-10
移动云盘 Python 库使用文档
1. 配置与初始化 初始化 Yun139 会话: from Yun139 import Yun139Session # token要求为移除Basic 前缀的token Yun139Session = Yun139Session(token="你的Token")2. 刷新 Token # 刷新token status, result = Yun139Session.refresh_token() # 说明: # 1. 刷新token后,实例会自动更新token # 2. token有效期小于15天才可以刷新3. 文件管理 3.1 创建文件管理实例 from Yun139 import Yun139FileManager yun139_file = Yun139FileManager(session=Yun139Session)3.2 移动文件/文件夹 status, result = yun139_file.move_file( src_fids=["文件ID1", "文件ID2"], dst_pdir_fid="目标文件夹ID" ) # 返回示例 # True {"taskId": "1813463306615229568"} # 说明:获取任务ID后,可通过查询任务状态接口查询任务执行结果3.3 重命名文件/文件夹 status, result = yun139_file.rename_file( fid="文件ID", new_name="新文件名.png" ) # 返回示例 # True { # "success": true, # "code": "0000", # "message": "请求成功", # "data": { # "fileId": "FjyKEUGVXXmeU1zaXq1xO1JzHSVgVV0zn", # "parentFileId": "FrtDI1Whq8nNnxiot-7FEOr01Bd0YauDz", # "name": "2.png", # ... # } # }3.4 删除文件/文件夹 status, result = yun139_file.remove_file(fids=["文件ID1", "文件ID2"]) # 返回示例 # True { # "taskId": "1813468597285129984", # "batchFileResults": null # }4. 文件夹管理 4.1 创建文件夹管理实例 from Yun139 import Yun139FolderManager yun139_folder = Yun139FolderManager(session=Yun139Session)4.2 创建文件夹 status, result = yun139_folder.create_folder( folder_name="创建文件夹测试", pdir_fid="/" ) # 返回示例 # True { # "parentFileId": "/", # "fileId": "Fqkd1QUxDEyTTkHUC5mdPNrmiuEk8QwGk", # "type": "folder", # "fileName": "创建文件夹测试", # ... # }4.3 获取文件列表 # 第一页 status, result = yun139_folder.get_lists( pdir_fid="文件夹ID", size=50, cursor=None, sort_by="file_name", sort_order="asc" ) # 第二页 status, result = yun139_folder.get_lists( pdir_fid="文件夹ID", size=50, cursor="0|[57-0-0,12-0-1][JzlYdEZEWk8zMEZ0UjlaRjdIM0ZxLUc3MFpWMzBaZEhfYWUxVU1laUhicHlXYnRWLSc=,J0ZpcUlmVDFyNUlGRHc4MHhSenkxRzVwbEgwa2NxLVRMUSc=]", sort_by="file_name", sort_order="asc" ) # 參數説明 # cursor:首页为None,还有文件的话会返回nextPageCursor # 返回示例 # True { # "items": [ # { # "fileId": "Fiy3GykVcP9lxL8gNU1VJupjIC8I1XC1Z", # "parentFileId": "Fn_WtHq4W6j7l6Vvh1zZI1YwQYBbeFvi-", # "name": "跳转浏览器打开.jpg", # ... # } # ], # "nextPageCursor": null # }5. 分享链接管理 5.1 创建分享链接实例 from Yun139 import Yun139ShareManager yun139_share = Yun139ShareManager(session=Yun139Session)5.2 创建分享链接 status, result = yun139_share.create_share( title="分享7天测试", url_type=0, fid_list=["文件ID1"], fld_list=["文件夹ID1"], expired_time=7 ) # 返回示例 # True { # "result": { # "resultCode": "0", # "resultDesc": "" # }, # "getOutLinkRes": { # "getOutLinkResSet": [ # { # "objID": "aab3b2f8d00e491da36b466052d94a5a", # "passwd": "q9su", # "linkID": "2qidFfUiQDtnx", # "linkUrl": "https://yun.139.com/shareweb/#/w/i/2qidFfUiQDtnx", # "linkUrlMin": null # } # ] # } # }6. 任务管理 6.1 创建任务管理实例 from Yun139 import Yun139TaskManager yun139_task = Yun139TaskManager(session=Yun139Session)6.2 查询任务状态 status, result = yun139_task.get_task_status(task_id="任务ID") # 返回示例 # True { # "taskInfo": { # "taskId": "1813463306615229568", # "status": "Succeed", # "progress": 100, # "createdAt": "2025-11-07T02:27:52.000+08:00", # "startedAt": "2025-11-07T02:27:52.000+08:00", # "finishedAt": "2025-11-07T02:27:52.000+08:00", # "code": null, # "message": null, # "taskType": 2 # }, # "batchFileResults": [...], # "extraData": { # "totalProcess": 0, # "consumedProcess": 3 # } # }7. 文件上传 7.1 创建上传实例 from Yun139 import Yun139UploadManager yun139_upload = Yun139UploadManager(session=Yun139Session)7.2 上传文件 def progress(percent): print(f"上传进度: {percent}%") status, result = yun139_upload.upload_file( file_name="cc.zip", file_path="cc.zip", pdir_fid="目标文件夹ID", progress_callback=progress ) # 返回示例 # 上传进度: 100% # True { # "fileId": "Fvwh5Wdjb6pl8BXzvEgpGhazttFGo2_gZ", # "parentFileId": "FrtDI1Whq8nNnxiot-7FEOr01Bd0YauDz", # "name": "cc.zip", # "description": null, # "type": "file", # "fileExtension": "zip", # "category": "zip", # "createdAt": "2025-11-07T03:58:36.440+08:00", # "updatedAt": "2025-11-07T03:58:37.561+08:00", # ... # }8. 文件下载 8.1 创建下载实例 from Yun139 import Yun139DownManager yun139_download = Yun139DownManager(session=Yun139Session)8.2 获取下载链接 status, result = yun139_download.get_download_url(fid="文件ID") # 返回示例 # True { # "fileId": "FqRfdx22osqO-tU0ZvV1Nb7ryEM8dqKAj", # "errCode": null, # "message": null, # "url": "https://b22-obs-ykj-01.obs.cidc-rp-2006.joint.cmecloud.cn/...", # "expiration": "2025-11-07T03:20:13.396+08:00", # "size": 32029905, # "cdnUrl": "https://yun.mcloud.139.com:443/cdnv1/20241023/FqF8bFyjxCaPMGZCsjbNHSLngJhZUcQMj.pdf?sign=...", # "cdnSwitch": false, # ... # }9. 打印输出 所有接口返回均为 (status, result),可直接打印: import json print(status, json.dumps(result, ensure_ascii=False, indent=2))10. 其他说明 各接口参数请参考注释及返回示例。 任务型操作(如移动、删除等)返回 taskId 后,可用任务管理接口查询进度。 分享链接创建后会返回链接URL和提取码等信息。 代码下载 cloud_driver_sdk 参考文献 openList
功能库
# python
# 移动云盘
KongHen02
2天前
0
12
0
2025-10-24
UTS编写字符串编解码/加密插件(安卓及鸿蒙端)
全局说明 编写说明 uts在安卓端编译为kotlin,所以,使用可以使用安卓自带库+kotlin的方法来实现 uts在鸿蒙端编译为ArkTs,ArkTs和UTS很相似,包括一些方法都一样,所以可以直接从ArkTs的文档里复制代码,稍微修改即可使用。 使用的库 安卓端 import MessageDigest from 'java.security.MessageDigest'; import BigInteger from 'java.math.BigInteger'; import Base64 from 'java.util.Base64'; 鸿蒙端 import util from '@ohos.util'; import { cryptoFramework } from '@kit.CryptoArchitectureKit';插件接口定义 /** * interface.uts * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示 */ /** * 哈希算法枚举 */ export type HashAlgorithm = | "MD5" | "SHA1" | "SHA224" | "SHA256" | "SHA384" | "SHA512" /** * 哈希加密返回结果 */ export type HashResult = { hash: string } /** * 哈希加密函数定义 */ export type HashFunction = (input: string, algorithm: HashAlgorithm) => string1. Base64编解码 安卓端 /** * BASE64编码方法 * * @param input 输入字符串 * @return BASE64加密后的字符串 */ export const Base64Encode = function (input: string) : string { try { // 将字符串转换为字节数组 // toByteArray()为kotlin的方法 const inputBytes = input.toByteArray(); // 使用Base64编码器进行编码 const encodedBytes = Base64.getEncoder().encodeToString(inputBytes); // 将编码后的字节数组转换为字符串 return encodedBytes; } catch (e) { console.error("BASE64加密错误:", e); return ""; } } /** * BASE64解码方法 * * @param input 输入字符串 * @return BASE64解密后的字符串 */ export const Base64Decode = function (input: string) : string { try { // 将Base64字符串转换为字节数组 const decodedBytes = Base64.getDecoder().decode(input); // 将Java字节数组转换为UTS字符串 return new String(decodedBytes); } catch (e) { console.error("BASE64解密错误:", e); return ""; } } 鸿蒙端 /** * BASE64编码方法 * * @param input 输入字符串 * @return BASE64加密后的字符串 */ export const Base64Encode = function (input: string) : string { let textEncoder = new util.TextEncoder("utf-8"); let uint8Array = textEncoder.encodeInto(input); let base64Helper = new util.Base64Helper(); return base64Helper.encodeToStringSync(uint8Array); } /** * BASE64解码方法 * * @param input 输入字符串 * @return BASE64解密后的字符串 */ export const Base64Decode = function (input: string) : string { let Base64Helper = new util.Base64Helper(); let arr = Base64Helper.decodeSync(input) let textDecoder = util.TextDecoder.create('utf-8'); return textDecoder.decodeToString(arr); } 消息摘要计算 HASH加密使用统一方法,包含MD5、SHA1、SHA224、SHA256、SHA384、SHA512 安卓端 /** * 统一哈希加密方法 * * @param input 输入字符串 * @param algorithm 哈希算法枚举 * @return 哈希加密后的十六进制字符串 */ export const hash : HashFunction = function (input : string, algorithm: HashAlgorithm) : string { try { // 创建MessageDigest实例 const md = MessageDigest.getInstance(algorithm); // 输入数据转化为字节数组 const dataArray = input.toByteArray() // 计算哈希值 const hashBytes = md.digest(dataArray); // 转换为十六进制字符串 const result = BigInteger(1, hashBytes).toString(16) return result; } catch (e) { // 方法出错时返回空字符串 console.error(`${algorithm}加密错误:`, e); return ""; } }鸿蒙端 /** * 统一哈希加密方法 * * @param input 输入字符串 * @param algorithm 哈希算法枚举 * @return 哈希加密后的十六进制字符串 */ export const hash : HashFunction = function (input : string, algorithm: HashAlgorithm) : string { try { // 创建哈希实例 let md = cryptoFramework.createMd(algorithm); // 使用同步方法更新数据 let textEncoder = util.TextEncoder.create('utf-8'); let dataBlob : cryptoFramework.DataBlob = { data: textEncoder.encodeInto(input); }; md.updateSync(dataBlob); // 使用同步方法计算摘要 let mdResult : cryptoFramework.DataBlob = md.digestSync(); // 转换为十六进制字符串 let result = Array.from(mdResult.data).map(byte => byte.toString(16).padStart(2, '0')).join(''); return result; } catch (e) { // 方法出错时返回空字符串 // console.error(`${algorithm}加密错误:`, e); return ""; } }规范调用方法 这里安卓端和鸿蒙端相同 // MD5加密 export const MD5 = function (input: string) : string { return hash(input, 'MD5') } // SHA1加密 export const SHA1 = function (input: string) : string { return hash(input, 'SHA1') } // SHA224加密 export const SHA224 = function (input: string) : string { return hash(input, 'SHA224') } // SHA256加密 export const SHA256 = function (input: string) : string { return hash(input, 'SHA256') } // SHA384加密 export const SHA384 = function (input: string) : string { return hash(input, 'SHA384') } // SHA512加密 export const SHA512 = function (input: string) : string { return hash(input, 'SHA512') }使用方法 import * as KhCrypto from '@/uni_modules/kh-crypto' const input = ref<string>('待加密字符串'); const output = ref<string>('') // base64编码 output.value = KhCrypto.Base64Encode(inputText.value) // base64解码 output.value = KhCrypto.Base64Decode(inputText.value) // MD5加密 output.value = KhCrypto.MD5(inputText.value) // SHA1加密 output.value = KhCrypto.SHA1(inputText.value) // SHA224加密 output.value = KhCrypto.SHA224(inputText.value) // SHA256加密 output.value = KhCrypto.SHA256(inputText.value) // SHA384加密 output.value = KhCrypto.SHA384(inputText.value) // SHA512加密 output.value = KhCrypto.SHA512(inputText.value)插件源码 kh-crypto - DCloud插件市场 参考文档 在uts中如何将字符串转换为ByteArray Base64Helper - 鸿蒙开发API参考 消息摘要计算介绍及算法规格 - 鸿蒙开发指南
uniapp
uniapp-x
功能库
uts
# uniapp
# UTS
# uniapp-x
# 鸿蒙
KongHen02
10月24日
0
32
0
2025-10-12
UC网盘python sdk库
说明 UC网盘除不能转存链接外其他功能均与夸克网盘相同,请参考夸克网盘文档。 代码下载 cloud_driver_sdk 参考文献 openList
功能库
# python
# UC网盘
KongHen02
10月12日
0
30
0
2025-10-12
蓝奏云 python sdk库
蓝奏云 Python 库使用文档 1. 配置与初始化 首先,准备 config.yaml 配置文件,内容示例: lanzou: username: "你的用户名" password: "你的密码"在代码中读取配置并初始化蓝奏云会话: import yaml from Lanzou import LanzouSession # 读取配置文件 with open("config.yaml", "r", encoding="utf-8") as f: config = yaml.safe_load(f) lanzou_conf = config["lanzou"] # 创建蓝奏云基础实例 session = LanzouSession() # 登录获取cookie status, result = session.login(lanzou_conf["username"], lanzou_conf["password"])2. 文件管理 2.1 创建文件管理实例 from Lanzou import LanzouFileManager file_manager = LanzouFileManager(session)2.2 重命名文件 status, result = file_manager.rename_file("文件ID", "新文件名.png") # 返回示例: # True { # "zt": 1, # "info": "重命名成功", # "text": None, # "dat": None # } # False { # "zt": 0, # "info": "会员已过期,无法使用", # "text": None, # "dat": None # }2.3 删除文件 status, result = file_manager.delete_file("文件ID") # 返回示例: # True { # "zt": 1, # "info": "已删除", # "text": None, # "dat": None # }2.4 上传文件 status, result = file_manager.upload_file("本地文件路径", "上传文件名.txt", "目标文件夹ID") # 返回示例: # True { # "zt": 1, # "info": "上传成功", # "text": [ # { # "icon": "txt", # "id": "246766304", # "f_id": "iYYAN31w12je", # "name_all": "上传测试.txt", # "name": "上传测试.txt", # "size": "18.0 B", # "time": "0 秒前", # "downs": "0", # "onof": "0", # "is_newd": "https://wwa.lanzouq.com" # } # ] # }2.5 移动文件 status, result = file_manager.move_file("文件ID", "目标文件夹ID") # 返回示例: # True { # "zt": 1, # "info": "移动成功", # "text": None, # "dat": None # }2.6 设置文件密码 status, result = file_manager.set_file_pwd("文件ID", "密码", "1") # 返回示例: # True { # "zt": 1, # "info": "设置成功", # "text": None, # "dat": None # }3. 文件夹管理 3.1 创建文件夹管理实例 from Lanzou import LanzouFolderManager folder_manager = LanzouFolderManager(session)3.2 创建文件夹 status, result = folder_manager.create_folder("文件夹名称", "父文件夹ID", "文件夹描述") # 返回示例: # True { # "zt": 1, # "info": "创建成功", # "text": "12296591", # "dat": None # }3.3 删除文件夹 status, result = folder_manager.delete_folder("文件夹ID") # 返回示例: # True { # "zt": 1, # "info": "删除成功", # "text": None, # "dat": None # }3.4 获取文件夹信息 status, result = folder_manager.get_folder_info("文件夹ID") # 返回示例: # True { # "zt": 1, # "info": { # "name": "测试2", # "des": "测试文件夹2", # "pwd": "1vo0", # "onof": "1", # "taoc": "", # "is_newd": "https://wwa.lanzouq.com", # "new_url": "https://wwa.lanzouq.com/b0rafeg1e" # }, # "text": None, # "dat": None # }3.5 修改文件夹信息 status, result = folder_manager.set_folder_info("文件夹ID", "新名称", "新描述") # 返回示例: # True { # "zt": 1, # "info": "成功修改", # "text": None, # "dat": None # }3.6 修改文件夹密码 status, result = folder_manager.set_folder_pwd("文件夹ID", "密码", "1") # 返回示例: # True { # "zt": 1, # "info": "修改成功", # "text": None, # "dat": None # }3.7 获取文件夹列表 status, result = folder_manager.get_folder_list("父文件夹ID") # 返回示例: # True { # "zt": 1, # "info": [ # { # "name": "测试", # "folder_des": "[测试文件夹]", # "folderid": 12295088, # "now": 1 # } # ], # "text": [ # { # "onof": "1", # "folderlock": "0", # "is_lock": "0", # "is_copyright": "0", # "name": "修改测试2", # "fol_id": "12295254", # "folder_des": "[修改测试文件夹2...]" # } # ], # "dat": null # }3.8 获取文件列表 status, result = folder_manager.get_file_list("文件夹ID") # 返回示例: # True { # "zt": 1, # "info": 1, # "text": [ # { # "icon": "jpg", # "id": "246767298", # "name_all": "EB9DA95273BC463B238A14588B7E6E8C.jpg", # "name": "EB9DA95273BC463B238A14588B7E6E8C.jpg", # "size": "342.3 K", # "time": "24 分钟前", # "downs": "0", # "onof": "0", # "is_lock": "0", # "filelock": "0", # "is_copyright": 0, # "is_bakdownload": 0, # "bakdownload": "0", # "is_des": 0, # "is_ico": 0 # } # ], # "dat": null # }4. 分享链接管理 4.1 创建分享管理实例 from Lanzou import LanzouShareManager share_manager = LanzouShareManager(session)4.2 获取文件分享链接 status, result = share_manager.get_file_link("文件ID") # 返回示例: # True { # "zt": 1, # "info": { # "pwd": "bofq", # "onof": "1", # "f_id": "it02C31w1u5i", # "taoc": "", # "is_newd": "https://wnwgongzuoshi.lanzouq.com" # }, # "text": None, # "dat": None # }4.3 获取文件夹分享链接 status, result = share_manager.get_folder_link("文件夹ID") # 返回示例: # True { # "zt": 1, # "info": { # "pwd": "bofq", # "onof": "1", # "f_id": "it02C31w1u5i", # "taoc": "", # "is_newd": "https://wnwgongzuoshi.lanzouq.com" # }, # "text": None, # "dat": None # }5. 他人分享链接下载 5.1 创建下载管理实例 from Lanzou import LanzouDownManager lanzouDown = LanzouDownManager()5.2 获取文件夹参数 status = lanzouDown.get_folder_params("分享链接URL")5.3 获取文件及文件夹列表 status, result = lanzouDown.get_file_list(url="分享链接URL", page=1)5.4 获取文件信息(包含下载链接) status, result = lanzouDown.get_file_info("文件分享链接", pwd="密码", final=True) # 返回示例: # True { # "title": "文件名称.apk", # "size": "57.0 M", # "author": "KongHen02", # "desc": "测试描述", # "url": "https://developer-oss.lanrar.com/file/...", # "down": "" # }5.5 通过下载链接获取下载直链 status, result = lanzouDown.get_final_url("下载链接")6. 打印输出 所有接口返回均为 (status, result),可直接打印: import json print(status, json.dumps(result, indent=4))7. 其他说明 各接口返回状态 status 为布尔值,True 表示成功,False 表示失败 返回结果中的 zt 字段:1 表示成功,0 表示失败 info 字段包含操作结果的详细信息 text 字段通常包含文件或文件夹的详细信息 分享链接管理需要用户登录后才能使用 他人分享链接下载不需要登录即可使用 如需更详细的参数说明或扩展用法,请参考源码或补充提问。 代码下载 cloud_driver_sdk 参考文献 openList
功能库
# python
# 蓝奏云
KongHen02
10月12日
0
30
0
2025-10-09
全新任务管理平台(流量主变现系统)开源
项目简介 项目结构 接口管理:PHP + Mysql 后台管理系统:Vue3 + ts + TDesign 任务单页:Vue3 小程序:uniapp + Vue2 变现说明 基础流程: 后台创建任务 复制任务链接 分享到社群或私域 用户打开任务页面 跳转到小程序观看广告 观看广告 下发奖励 收入说明 微信小程序官方广告收入 其他推广/广告收入 系统演示 演示站点 空痕任务管理系统 后台数据为静态演示数据,无法更改 演示图片 管理后台 控制台图片 任务单页 任务单页图片 小程序 小程序图片 安装教程 管理后台 安装依赖 npm install 构建项目 npm run build 新建站网站及数据库 推荐:PHP 8.0 推荐:Mysql 5.7 开启SSL(必须) 配置伪静态 location / { try_files $uri $uri/ /index.html; } location /api/ { if (!-e $request_filename) { rewrite ^/(.*)$ /$1.php last; } } 配置跨域 配置跨域教程 请参考第1种解决方法 导入数据库 导入/后台/数据库/task_dev_xma_run.sql到Mysql数据库 修改/后台/api/config.php 管理账户密码 JWT配置(密钥、过期时间) 数据库配置 上传后台代码 上传/后台/dist目录中的全部文件到网站根目录 上传/后台/api目录到网站根目录 任务单页 安装依赖 npm install 修改/任务单页/src/App.vue中的接口信息 修改后台地址 修改视频教程地址 构建项目 npm run build 新建网站 静态网站 开启SSL(必须) 上传任务单页代码 上传/任务单页/dist目录中的全部文件到网站根目录 小程序 使用HbuildX打开小程序 在manifest.json中获取新AppID 修改/pages/user/view中的后台地址 修改/pages/user/work中的二维码 发行到微信小程序 在微信开发者工具中上传代码 登录微信小程序后台配置 配置request合法域名 https://task.dev.xma.run(更改为自己的后台地址) https://www.duitang.com 配置downloadFile合法域名 https://c-ssl.duitang.com 配置明文scheme拉起此小程序 pages/user/view;pages/user/work 代搭建/教学 请联系微信:KongHen02 项目地址 GitHub
应用
# PHP
# uniapp
# VUE
# 小程序
# 开源
KongHen02
10月9日
10
248
2
1
2
下一页
易航博客