欢迎光临
我们一直在努力

懂Python的大佬帮看下如何改造天翼云盘 CLI Python项目

ddane牛人:

项目:https://github.com/Aruelius/cloud189

这个你们熟悉吧,想改造如下造福MJJ

场景:
本地文件夹:D:\mjj,下有1.txt、2.txt两个文件

执行命令:python main.py upload -f D:\mjj(上传D:\mjj文件夹)
希望实现:
上传 D:\mjj\1.txt 完成
删除 D:\mjj\1.txt 完成
上传 D:\mjj\2.txt 完成
删除 D:\mjj\2.txt 完成

如此一来就可以实现小鸡搬运百度网盘资源到天翼网盘了。

求助:始终找不到单文件( D:\mjj\1.txt)的上传指令在哪个位置,他好像是上传完整个文件夹才结束,我加删除命令直接删除整个本地文件夹了,不能实现实时上传单文件,实时删除单文件。

老少爷们们出出主意呗。删除命令应该加哪里,MJJ需要这个啊

文件夹上传代码段:

  1.     def upload_dir(self, folder_path, parrent_fid=-11, force=False, mkdir=True, callback=None,
  2.                    failed_callback=None, up_handler= None):
  3.         """文件夹上传接口
  4.         :param str file_path: 待上传文件路径
  5.         :param int folder_id: 上传目录 id
  6.         :param bool force: 强制上传已经存在的文件(文件名、大小一致的文件)
  7.         :param bool mkdir: 是否在 parrent_fid 创建父文件夹
  8.         :param func callback: 上传进度回调
  9.         :param func failed_callback: 错误回调
  10.         :param func up_handler: 上传文件数回调
  11.         :return: UpCode list  or  Cloud189 error code(mkdir error)
  12.         """
  13.         if not os.path.isdir(folder_path):
  14.             logger.error(f"Upload dir: [{folder_path}] is not a file")
  15.             return UpCode(Cloud189.PATH_ERROR)
  16.         dir_dict = {}
  17.         logger.debug(f’Upload dir: start parsing {folder_path=} structure…’)
  18.         upload_files = []
  19.         folder_name = get_file_name(folder_path)
  20.         if mkdir:
  21.             result = self.mkdir(parrent_fid, folder_name)
  22.             if result.code != Cloud189.SUCCESS:
  23.                 return result  # MkCode
  24.             dir_dict[folder_name] = result.id
  25.         else:
  26.             dir_dict[folder_name] = parrent_fid
  27.         for home, dirs, files in os.walk(folder_path):
  28.             for _file in files:
  29.                 f_path = home + os.sep + _file
  30.                 f_rfolder = get_relative_folder(f_path, folder_path)
  31.                 logger.debug(f"Upload dir: {f_rfolder=}, {f_path=}, {folder_path=}")
  32.                 if f_rfolder not in dir_dict:
  33.                     dir_dict[f_rfolder] = ”
  34.                 upload_files.append((f_path, dir_dict[f_rfolder]))
  35.             for _dir in dirs:
  36.                 p_rfolder = get_relative_folder(
  37.                     home, folder_path, is_file=False)
  38.                 logger.debug(f"Upload dir: {p_rfolder=}, {home=}, {folder_path=}")
  39.                 dir_rname = p_rfolder + os.sep + _dir  # 文件夹相对路径
  40.                 result = self.mkdir(dir_dict[p_rfolder], _dir)
  41.                 if result.code != Cloud189.SUCCESS:
  42.                     logger.error(
  43.                         f"Upload dir: create a folder in the upload sub folder{dir_rname=} failed! {folder_name=}, {dir_dict[p_rfolder]=}")
  44.                     return result  # MkCode
  45.                 logger.debug(
  46.                     f"Upload dir: folder successfully created {folder_name=}, {dir_dict[p_rfolder]=}, {dir_rname=}, {result.id}")
  47.                 dir_dict[dir_rname] = result.id
  48.         up_codes = []
  49.         total_files = len(upload_files)
  50.         for index, upload_file in enumerate(upload_files, start=1):
  51.             if up_handler:
  52.                 up_handler(index, total_files)
  53.             logger.debug(f"Upload dir: file [{upload_file[0]}] enter upload process…")
  54.             up_code = self.upload_file(upload_file[0], upload_file[1], force=force, callback=callback)
  55.             if failed_callback and up_code.code != Cloud189.SUCCESS:
  56.                 failed_callback(up_code.code, up_code.path)
  57.                 logger.debug(f"Up Dir Code: {up_code.code=}, {up_code.path=}")
  58.             up_codes.append(up_code)
  59.             logger.debug(f"Dir: {index=}, {total_files=}")
  60.         return up_codes

似毛非毛牛人:
“def upload_dir” 上面一段函数。不就是

"""单个文件上传接口

https://github.com/Aruelius/cloud189/blob/a6765d1dbae47106f522f7af024716603229c50f/cloud189/api/core.py#L651

赞(0) 打赏
未经允许不得转载:砸漏网 » 懂Python的大佬帮看下如何改造天翼云盘 CLI Python项目

相关推荐

评论 抢沙发

评论前必须登录!

 

APP开发 更专业 更方便

AD赞助联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏