开发者社区> 问答> 正文

请教一下分块上传的uploadId失效的问题

用OSS_C_SDK实现的断点上传功能,暂停后再继续上传,偶尔会出现oss_upload_part_from_file函数调用失败的问题,错误代码是NoSuchUpload,但我调试了一下,传递的uploadid是没错的,并且在暂停期间也没有调用过oss_abort_multipart_upload,不明白为什么uploadid会不存在呢?

展开
收起
samhuang1987 2015-12-02 09:59:12 7704 1
3 条回答
写回答
取消 提交回答
  • 回 2楼(samhuang1987) 的帖子
    请把您的upload发一下,我从后端看一下这个upload_id是否真的存在,然后我们一起分析一下您说的现象

    -------------------------

    回 4楼(samhuang1987) 的帖子
    这个upload_id是存在的,但后端并没有看到您说的oss_upload_part_from_file失败情况,是否可以提供您说的出错时候的req_id,在aos_status_t里面有这个变量

    -------------------------

    回 6楼(samhuang1987) 的帖子
    这个upload_id是肯定在的,OSS不会对用户的数据做未经允许的删除操作,看了一下后端的日志,您上传的object有问题哦,这个upload_id对应的object名字是/aliba/upload/doc/15/12/02/rkuaagklkpljfahxdhbmzg/7.000000.zip,而您刚才操作的object名字是 /aliba/upload/doc/15/12/02/rkuaagklkpljfahxdhbmzg/0.0.zip,所以会出现404的问题。每一个upload_id对应一个object,请您查看一下您的代码

    -------------------------

    回 8楼(samhuang1987) 的帖子
    有疑问欢迎随时反馈
    2015-12-02 10:52:35
    赞同 展开评论 打赏
  • 回 1楼deadbeef的帖子
    可是我想知道为什么会不存在呢?按照你说的意思,难道是Uploadid存在的时候也会报NoSuchUpload?那么又是如何导致这种情况发生的呢?我不太明白是什么地方出的问题,所以可以告诉我哪些地方有可能引发这样的问题呢?

    -------------------------

    回 3楼yjseu的帖子
    upload_id是8BC0A93CFCFE4E60BD1BCC09A39FB3E6

    -------------------------

    回 5楼yjseu的帖子
    现在再看一下那个upload_id还在不在呢?估计是我重新开始下载的时候出问题的,req_id为565E786C44ABFA900D630150

    -------------------------

    回 7楼yjseu的帖子
    是我程序的问题,谢谢帮忙查找原因,不然不仔细调代码都看不出问题,我知道肯定不会是OSS的问题,只是不确定我代码哪出了问题,呵呵
    2015-12-02 10:39:27
    赞同 展开评论 打赏
  • 可以通过C SDK的oss_list_multipart_upload()查一下看看,这个upload id是否真的在。当然,也可以通过更方便的工具,比如控制台,osscmd等工具查看。

    osscmd是一个python程序,参考文档:
       http://help.aliyun.com/document_detail/oss/utilities/osscmd/multipart.html

    里面的listparts命令(这个命令命名不好,其实就是列举所有的未完成的分片上传)
    2015-12-02 10:12:19
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载