开发者社区> 问答> 正文

.NET 大文件上传最后合并的疑问

在调用API进行分块上传,每次上传part之后,OSS的返回结果会包含一个 PartETag 对象,用List进行存储,在最后合并的时候设置好这个List集合,用Java没问题,但是用.NET问题来了。

首先看看Java的设置:
CompleteMultipartUploadRequest completeMultipartUploadRequest =new CompleteMultipartUploadRequest(bucketName, key, initiateMultipartUploadResult.getUploadId(), partETags);
红色部分传入的是每次分块上传返回的集合 List<PartETag> partETags,将分块信息提交,便于服务器验证合并每个分块文件,这个可以理解。

再看看.NET的调用如下:
.net的API再构造合并文件请求的时候,却没有带partETags的构造函数,查阅.NET的API文档,CompleteMultipartUploadRequest定义如下:
public CompleteMultipartUploadRequest
(
     string bucketName,
     string key,
     string uploadId
)

再看看其中的属性,包括属性PartETags:

  


  NameDescription
BucketName
获取或者设置OssObject所在Bucket的名称。
Key
获取或者设置OssObject的值。
PartETags
获取或者设置标识Part上传结果的PartETag对象列表。
UploadId
获取或设置上传Multipart上传事件的Upload ID。

试想着构造函数不行,直接通过对象引用对属性PartETags进行设置应该也是可以的,但是偏偏PartETags又定义为不能设置的对象,定义如下。
public IList<PartETag> PartETags
{
      get;

}
说好的获取或设置呢?为什么只有一个get而没有set?

因此无法将每次分块的PartETag信息在最后整合的时候传给服务器。

最后没办法,直接调用完成分块的响应:
CompleteMultipartUploadResult result =client.completeMultipartUpload(completeMultipartUploadRequest);
通过后台看到碎片管理中的分块也没有,bucket中多了合并的文件,名称也是我需要上传的,但是合并的文件大小为0,文件合并失败。
最后返回的

result.ETag = D41D8CD98F00B204E9800998ECF8427E-0

正常来说这个值应该是对应新创建的Object的ETag,但是这个我用不同的文件试了一下,出现的均为该值!

求解!


展开
收起
千鸟 2014-06-28 16:24:45 9896 0
4 条回答
写回答
取消 提交回答
  • 用.NET的SDK测试大文件上传是可以的,官方的SDK没有问题
    估计你在使用方法方面没弄对,可以再测试看看~~~
    2014-07-09 08:48:41
    赞同 展开评论 打赏
  • LT是个伪程序员
    回 2楼(sunw) 的帖子
    我就是用的API上传大文件,Java可以,但是用.NET的API出现错误了。期待8月底的统一。

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

    回 2楼(sunw) 的帖子

    这样应该更能看出问题所在。

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

    回 1楼(cloud_service) 的帖子
      谢谢了^_^

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

    回 6楼(ftp4oss) 的帖子
    已经搞定了,谢谢,Java的SDK跟.NET的SDK在最后合并请求构造时有点区别。

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

    回 8楼(deanlu) 的帖子
    我已经将大文件上传的代码上传到论坛了,你可搜一下。
    2014-07-02 17:14:34
    赞同 展开评论 打赏
  • 尊敬的客户您好,由于历史原因,目前各语言SDK的版本功能上可能有所不同,我们现在正在统一各语言版本功能,预计8月底左右可完成版本一致化。目前您可通过直接操作API的方式来执行大文件上传功能。给您带来的不便,还请谅解。
    2014-07-02 17:06:33
    赞同 展开评论 打赏
  • 分享阿里云支持与服务团队最佳实践、经典案例与故障排查。
    楼主好!您的这个情况需要我们工程师进一步确认,还请您耐心等待,我们会及时同步给您。
    2014-07-02 16:50:56
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载
低代码开发师(初级)实战教程 立即下载