登录
首页 >  Golang >  Go问答

用于谷歌云存储的Golang SDK:分段下载

来源:stackoverflow

时间:2024-04-05 14:51:35 129浏览 收藏

从现在开始,努力学习吧!本文《用于谷歌云存储的Golang SDK:分段下载》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

使用GoLang SDK进行谷歌云存储。

找不到如何分块下载文件。


解决方案


google cloud 文档表示要从 cloud storage 下载对象,您应该使用以下命令:

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

来源:https://cloud.google.com/storage/docs/downloading-objects#storage-download-object-code_sample

鉴于他们的 sdk 返回 io.reader,您无需担心使用底层方法来能够引用块中的下载(尽管快速浏览其源代码,它只是实现了 http.newrequest,它使用相同的逻辑执行您想要的操作)。

它似乎没有从他们的示例中“分块”的原因是因为使用了 ioutil.readall,尽管它非常适合简单的用例,但会将所有 readers 数据提取到内存中(这意味着它还必须等待以便数据可用)。

为了更好地了解如何分步处理 reader,我建议您查看 https://tour.golang.org/methods/21,了解 io.reader 以及如何更有效地使用它。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>