分享一下批量上传视频文件到Shotgun Version时的小技巧

一直以来,由于shotgun服务器在国外,访问慢的原因,访问/读写/上传到shotgun云数据,与它“斗智斗勇”。

最近遇到一个批量上传视频文件,如果只是普通的调用shotgun api倒没有啥问题,直接sg_uploaded_movie 就好了,但是如果出错了呢? 几百个文件卡在哪里, 哪些上传完成了,哪些没有完成,要手工来挑选,第二次,第三次呢, 将是个烦琐的工作。

这时首先用的技术是多线程了,把这些文件批量送出去,交给api来执行,减少界面的卡顿, 这个不具体展开。

第二点, 要是出错了怎么办, 总不能自己调用自己来死循环吧, 万一是网络的问题将一直执行下去卡死。 这时充分用到了try except,错误时多发几次消息,虽然也有机率的问题但是足够让视频上传上去了,上代码:

        try:
            result = sg.create('Version', data)
            if result is not None:               
                versionid = result["id"]               
                sg.upload("Version", versionid, version_path, field_name="sg_uploaded_movie")          
        except Exception as e:
            try:
                sg.upload("Version", versionid, version_path, field_name="sg_uploaded_movie")   #再传一次试试
            except Exception as e:
                try:
                    sg.upload("Version", versionid, version_path, field_name="sg_uploaded_movie")   #第三次试
                except Exception as e:                    
                    errorTxt = u"upload %s 失败,请重试!" % version_path
                    print(errorTxt)
                    print(e)            
        else:
            print(u"upload %s 成功!"% version_path)

这之前从没有这么用过, 有点搞笑对吧? 也算是笨办法, 只要能解决问题就好。

以下是宽带使用情况, 多线程+出错重复提交, 上行全跑满:
上传shotgun时占用宽带情况

欢迎同行交流 qq:316853809

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值