开发者社区> 问答> 正文

OssObject读取文件的大小有限制?

您好,


我的Oss上有一个1M大小的问题,我使用如下的代码OssObject.Read()方法来读取这个文件,我发现每次只能读取前面3750个字节,而无法一次性读取整个文件。

OssObject obj = client.GetObject(r);
Stream stream = obj.Content;
byte[] content = new byte[obj.Metadata.ContentLength];
int readCount = stream.Read(content, 0, content.Length);


后来,我只能使用SetRange一段一段地读,但是这个方法太慢了,一M的文件大概需要20秒才能读完,比PubObject慢多了。


求助是否有办法一次性读取文件,谢谢

展开
收起
zhhua08 2015-07-09 17:31:10 8489 0
3 条回答
写回答
取消 提交回答
  • ReOssObject读取文件的大小有限制?
    支持一下
    2015-07-14 10:59:57
    赞同 展开评论 打赏
  • 如果文件太大,可以分片上傳
    2015-07-10 08:06:46
    赞同 展开评论 打赏
  • ReOssObject读取文件的大小有限制?
    obj.Content类型是网络流,一次读的字节数不定,需要循环调用read函数
    using (var requestStream = o.Content)
                       {
                           byte[] buf = new byte[1024];
                           var fs = File.Open(fileToDownload, FileMode.OpenOrCreate);
                           var len = 0;
                           while ((len = requestStream.Read(buf, 0, 1024)) != 0)
                           {
                               fs.Write(buf, 0, len);
                           }
                           fs.Close();
                           Console.WriteLine("GetObject done.");
                       }
    2015-07-09 19:32:10
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
OSS运维进阶实战手册 立即下载
《OSS运维基础实战手册》 立即下载
OSS运维基础实战手册 立即下载