首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google云存储的Golang :多部分下载

Google云存储的Golang :多部分下载
EN

Stack Overflow用户
提问于 2019-01-04 16:34:46
回答 1查看 2.5K关注 0票数 0

使用google进行GoLang云存储。

无法找到如何在块中下载文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 00:44:57

Google文档说要从Cloud下载一个对象,您应该使用以下方法:

代码语言:javascript
复制
rc, err := client.Bucket(bucket).Object(object).NewReader(ctx)
if err != nil {
        return nil, err
}
defer rc.Close()

data, err := ioutil.ReadAll(rc)
if err != nil {
        return nil, err
}
return data, nil

来源:sample

考虑到他们的SDK返回一个io.Reader,您不需要担心底层方法被用来以块的形式引用下载(尽管快速查看它们的源代码,它只是实现了http.NewRequest,它使用相同的逻辑实现了您想做的事情)。

从他们的示例中似乎没有“分块”的原因是ioutil.ReadAll的使用,虽然它对简单用例很好,但它将所有Reader数据提取到内存中(这意味着它还必须等待数据变得可用)。

为了更好地理解如何分步骤处理Reader,我建议您浏览一下https://tour.golang.org/methods/21,了解一下io.Reader,以及如何更有效地使用它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54042838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档