空痕博客 - 编程技术分享

移动云盘 Python 库使用文档

KongHen02
昨天发布 /正在检测是否收录...

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

© 版权声明
THE END
喜欢就支持一下吧
点赞 0 分享 收藏
评论 抢沙发
取消
易航博客