GO --- 将Reader 或者 ReadCloser 转化为 ReadSeeker
原因: ReadSeeker 封装了Seek()方法,这个方法要求资源的任何位置都能被定位,例如存储在磁盘里文件,你可以随时读取文件的任意位置。而response.Body 是通过TCP连接从网络中读取数据,这些数据没有被存储,并且数据发送者不会再次发送数据给你,因此 response.Body 没有实现 io.Seeker 方法。
方法:基于以上分析,对于一些像 response.Body类型的 io.ReadCloser,将它转化为 ReadSeeker的方法就是先将 io.ReadCloser 全部读取到内存中,利用 ioutil.ReadAll() 方法,然后利用 bytes.NewReader() 方法就可以从[]byte中获得 io.ReadSeeker

它的缺点就是所有的内容都需要存储在内存中,这样会造成内存损耗。
GO --- 将Reader 或者 ReadCloser 转化为 ReadSeeker的更多相关文章
- go标准库的学习-io
参考https://studygolang.com/pkgdoc 导入方式: import "io" o包提供了对I/O原语的基本接口.本包的基本任务是包装这些原语已有的实现(如o ...
- 13. Go 语言网络爬虫
Go 语言网络爬虫 本章将完整地展示一个应用程序的设计.编写和简单试用的全过程,从而把前面讲到的所有 Go 知识贯穿起来.在这个过程中,加深对这些知识的记忆和理解,以及再次说明怎样把它们用到实处.由本 ...
- 图片转base64
function convertImgToBase64(url, callback, outputFormat){ var canvas = document.createElement('CANVA ...
- Golang学习 - io/ioutil 包
------------------------------------------------------------ // Discard 是一个 io.Writer 接口,调用它的 Write ...
- ioutil包二
ioutil包二 (原创随笔,转载请注明出处 http://www.cnblogs.com/majianguo/p/8016426.html) ioutil包实现了一些I/O实用功能,导出了7个函数和 ...
- Golang文件IO 一
Golang文件IO 一 文件IO编程最基本.最常用的就属读写文件操作了.ioutil包实现了一些IO实用功能,其中就包括非常简捷.好用的文件读取功能. ioutil包有7个函数1个变量: var D ...
- Vue项目图片剪切上传——vue-cropper的使用
最近自己在研究vue,然后做了一个小型的后台管理系统用来练手,开发过程中,想到了剪切图片上传用户头像的需求.上网百度了一番,发现好多用的都是vue-cropper.我也就用了,个人感觉还是挺好用的.现 ...
- Ckeditor 4 复制粘贴截图并转化base64格式保存至数据库
虽然Ckeditor 中自带的有上传图片和文件的功能,但是有时候我们并不需要把图片保存至服务器的文件夹中. 反而是截图复制粘贴,把图片转化为base64格式保存在数据库中即可满足要求. 1.首先下载安 ...
- Go内置常用包
strings 字符串函数 Contains(s, substr string) bool 字符串s是否包含字符串substr,包含返回true Split(s, sep string) []stri ...
随机推荐
- S5PV210 timer
TCFG0, R/W, Address = 0xE250_0000 Timer Input Clock Frequency = PCLK / ( {prescaler value + 1} ) / { ...
- stm32 内部flash
嵌入式闪存 闪存存储器有主存储块和信息块组成 大容量产品主存储块最大为64K×64位,每个存储块划分为256个2K字节的页 编程和擦除闪存 闪存编程一次可以写入16位(半字) 闪存擦除操作可以按页面擦 ...
- 3-JavaSe-1-stream-1-流库特征
1.parallelStream可以让流库以并行方式来执行过滤和计数. String content=new String(Files.readAllBytes(Paths.get("D:\ ...
- linux复制、压缩打包、解压缩等操作
1. 复制:cp命令,可复制一个文件夹下的所有文件和子目录.子文件,但是不包括本目录名,例如:不想包含目录名python3.7,想包含的是该目录下的所有子文件和子目录 cp -r /usr/local ...
- CentOS阿里仓库停止openstack mitaka源服务报错------“No package centos-release-openstack-mitaka available.”
之前学习了一个月的openstack的mitaka版本,部署完后放置一段时间,最近准备正式部署突然发现“No package centos-release-openstack-mitaka avail ...
- ArcGIS + Python 批量裁剪、添加X/Y坐标脚本
前言 前一段时间,同事拿来的数据范围太大,用不了那么多(只需要一个乡镇的,结果拿来区县的),太多了加载也是问题.所以就让我给处理下. 由于文件较多,手动裁剪的话,我一个一个用ArcGIS工具箱中的工具 ...
- springMvc--接受请求参数
作者:liuconglin 接收基本类型 表单: <h1>接受基本类型参数到Controller</h1> <form action="/param/test& ...
- django.db.models.fields.related_descriptors.RelatedObjectDoesNotExist
Enrollment has no customer.
- .netcore 打包发布到ubuntu linux上
使用命令行发布如下 cd NetCoreServerOne // project file place 项目文件 所在目录 dotnet build -r ubuntu.16.04-x6 ...
- KMP模板,注释
#include<bits/stdc++.h> using namespace std; queue<int> KMP(string a,string b){//a是主串,b是 ...