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和提取码等信息。