开发者社区> 问答> 正文

OSSC如何实现秒传与断点续传功能求解答.

分片上传已经实现 如何获取已经上传的块。

展开
收起
莫相离sky 2015-08-06 09:43:40 7277 0
4 条回答
写回答
取消 提交回答
  • 回6楼莫相离sky的帖子
    每次init_multipart_upload都会创建一个新的upload_id,如果要续传的话,不需要再调用init_multipart_upload,直接upload part就可以了。另外如果要判断文件是否在oss上存在,可以使用head object接口
    2015-08-06 16:05:06
    赞同 展开评论 打赏
  • ReOSSC如何实现秒传与断点续传功能求解答.
    其实我也有疑惑:

    同一个object,多次init,会得到不一样的upload_id?
    假如一个完成了,那其他的upload_id还有效吗?
    如果还有效,那么是不是只要一直申请upload_id,然后只上传部分数据,就会导致oss存储出现很多无意义数据?

    2015-08-06 11:37:16
    赞同 展开评论 打赏
  • 回1楼yjseu的帖子
    你好 这个是可以获取上传的块。 打个比方 第一步:上传一个文件 我如何检测这个文件在OSS上已经存在的。  第二:我上传的时候初始化那个分片上传的事件    服务器会给我一个upload——id。  但是当退出客户端  重启我第二次 再上传的这个文件,分配的UPLOAD_ID 是一致的? 不然我怎么取得我第一次已经 上传 的块。

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

    回3楼yjseu的帖子
    你的意思就是说  如果我要接着续传的话,我必须把之前的这个upload_id记录在本地 。第二次重启 再去上传的话 用这个记录的upload_id去 检测这个ID下哪些块,已经上传成功了是吧。  

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

    回5楼asker的帖子
    我试过了  每次上传 都会分配一个不同的upload_id。  唉,不知道要怎么弄续传的。 还有怎么检测这个文件在OSS上已经存在了 ,做秒传啊。

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

    回7楼菜鸟一枚的帖子
    我试过了一下   文件存在的时候调用head object 它给我回的值是 s->code==200  z正常。但是 我给一个不存在的 他就回值s-》code==400   Unknown  Error    是这样? = =!  未知错误。
    2015-08-06 10:37:16
    赞同 展开评论 打赏
  • 回楼主莫相离sky的帖子
    使用oss_list_upload_part这个接口可以获取

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

    回2楼莫相离sky的帖子
    分片上传服务器会给一个upload_id,这个upload_id一直是有效的,除非用户显示abort或者complete,也就是说你重启第二次再上传这个文件的时候,指定upload_id。如果你对文件分片策略没有改变,并且文件内容没有改变的话,可以通过list接口获得指定upload_id下哪些部分已经上传,对于上传的部分可以跳过,直接接着上传接下去的部分;当然,安全起见,list接口会返回已经上传分片的etag值,可以对文件分片的etag做比较,这样保证内容正确

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

    回 5楼(asker) 的帖子
    问题一:每次init会产生新的upload_id,问题二:一个完成了,那其他的upload_id仍然有效,如果想要废弃upload_id,请使用abort接口;问题三:是的,如果生成新的upload_id,并且上传数据,但是不complete或者abort就会产生无意义的数据

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

    回 4楼(莫相离sky) 的帖子
    你的理解是对的

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

    回 10楼(莫相离sky) 的帖子
    返回值应该是404吧,看一下你写的代码是否OK
    2015-08-06 09:54:07
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务 立即下载
Redis架构与介质选择指引 立即下载
荷鲁斯 移动端第三方库安全检查引擎介绍 立即下载