草庐IT

blogs_readers

全部标签

encryption - 为什么 crypto/rsa 库中的 Go 函数 EncryptOAEP 需要一个随机的 io.Reader?

我正在编写一个文件服务器,它在客户端加密数据,通过TCP发送数据,并在服务器端使用非对称RSA-OAEP加密对其进行解密。我一直在尝试使用两个主要函数,它们根据documentation采用以下参数:EncryptOAEP(hashhash.Hash,randomio.Reader,pub*PublicKey,msg[]byte,label[]byte)(out[]byte,errerror)DecryptOAEP(hashhash.Hash,randomio.Reader,priv*PrivateKey,ciphertext[]byte,label[]byte)(msg[]byte,

go - 如何 "bridge"writer 和 reader in go

我通常在Golang中使用Reader和Writer找到自己的方式,但我遇到了一个对我来说很陌生的情况。我正在使用“golang.org/x/net/html”渲染。它输出到Writerw。我想使用该输出并从中创建一个新请求。NewRequest使用一个Readerr。err:=html.Render(w,msg)...req,err:=http.NewRequest("Post",url,r)io.Copy(w,r)我的问题是“使用w和r绑定(bind)两个调用的最佳/理想解决方案是什么?”。我在网上找不到类似情况的示例。我正在考虑创建Reader和Writer并对它们使用io.Co

go - 如何 "bridge"writer 和 reader in go

我通常在Golang中使用Reader和Writer找到自己的方式,但我遇到了一个对我来说很陌生的情况。我正在使用“golang.org/x/net/html”渲染。它输出到Writerw。我想使用该输出并从中创建一个新请求。NewRequest使用一个Readerr。err:=html.Render(w,msg)...req,err:=http.NewRequest("Post",url,r)io.Copy(w,r)我的问题是“使用w和r绑定(bind)两个调用的最佳/理想解决方案是什么?”。我在网上找不到类似情况的示例。我正在考虑创建Reader和Writer并对它们使用io.Co

go - 涉及 CSV 文件的 io.Reader 和换行符问题

我有一个应用程序处理通过RabbitMQ从许多不同的上游应用程序传送的CSV-通常每个文件5000-15,000行。大多数时候效果很好。然而,这些上游应用程序中有几个已经过时(12-15年),编写它们的人早已不复存在。由于换行,我无法从这些较旧的应用程序中读取CSV文件。我发现这有点奇怪,因为换行符会映射到UTF-8回车(http://www.fileformat.info/info/unicode/char/000d/index.htm)。通常,该应用程序只会读取那些旧文件的标题,而不会读取其他任何内容。如果我在文本编辑器中打开这些文件之一并另存为utf-8编码覆盖现有文件,那么它可

go - 涉及 CSV 文件的 io.Reader 和换行符问题

我有一个应用程序处理通过RabbitMQ从许多不同的上游应用程序传送的CSV-通常每个文件5000-15,000行。大多数时候效果很好。然而,这些上游应用程序中有几个已经过时(12-15年),编写它们的人早已不复存在。由于换行,我无法从这些较旧的应用程序中读取CSV文件。我发现这有点奇怪,因为换行符会映射到UTF-8回车(http://www.fileformat.info/info/unicode/char/000d/index.htm)。通常,该应用程序只会读取那些旧文件的标题,而不会读取其他任何内容。如果我在文本编辑器中打开这些文件之一并另存为utf-8编码覆盖现有文件,那么它可

go - 将 csv.Reader() 用于 "chan string"的有效方法

我有一个“chanstring”,其中每个条目都是一个CSV日志行,我想将其转换为列“[]string”,目前我正在(效率低下)创建一个csv.NewReader(strings.NewReader(i))对于每个项目,看起来比实际需要做的工作多得多:fori:=rangefeederChan{r:=csv.NewReader(strings.NewReader(i))a,err:=r.Read()iferr!=nil{//logerror...continue}//thendostuffwith'a'//...}所以,如果有更有效的方法来做到这一点,我真的很感激分享,比如创建一次cs

go - 将 csv.Reader() 用于 "chan string"的有效方法

我有一个“chanstring”,其中每个条目都是一个CSV日志行,我想将其转换为列“[]string”,目前我正在(效率低下)创建一个csv.NewReader(strings.NewReader(i))对于每个项目,看起来比实际需要做的工作多得多:fori:=rangefeederChan{r:=csv.NewReader(strings.NewReader(i))a,err:=r.Read()iferr!=nil{//logerror...continue}//thendostuffwith'a'//...}所以,如果有更有效的方法来做到这一点,我真的很感激分享,比如创建一次cs

go - 为什么 ReadRequest 使用 bufio.Reader?

方法http.ReadRequest采用bufio.Reader而不是io.Reader。这背后的原因是什么? 最佳答案 无论如何它都会使用缓冲读取器。但由于bufio.Reader的性质,它不会自动将您的io.Reader包装到缓冲区中-它可以从底层io.Reader获取更多数据该算法实际上需要。并且,由于底层io.Reader无法推回超出的数据,因此它将保留在该缓冲区中。如果自动换行,读取请求后缓冲区将丢失并且您的io.Reader已损坏。因此,它要求您显式包装您的阅读器以防止数据丢失。

go - 为什么 ReadRequest 使用 bufio.Reader?

方法http.ReadRequest采用bufio.Reader而不是io.Reader。这背后的原因是什么? 最佳答案 无论如何它都会使用缓冲读取器。但由于bufio.Reader的性质,它不会自动将您的io.Reader包装到缓冲区中-它可以从底层io.Reader获取更多数据该算法实际上需要。并且,由于底层io.Reader无法推回超出的数据,因此它将保留在该缓冲区中。如果自动换行,读取请求后缓冲区将丢失并且您的io.Reader已损坏。因此,它要求您显式包装您的阅读器以防止数据丢失。

go - 从扫描仪转换为 io.Reader 的惯用方式

我最近遇到了如何从CSV文件中读取、对每一行应用一些转换并写入HTTP请求的问题。我遇到的问题是如何从返回任意字节数的逐行读取器(如扫描仪)转换为字节读取器,后者在每次调用Read时返回固定数量的字节().我想出的最佳解决方案是构建一个自定义io.Reader,如果字节不合适,它会从Scanner读取并在本地缓冲字节。然后缓冲的字节将在下一次调用Read()时返回。这是我想出的:https://gist.github.com/paulsc/6a0bf30a2a8d898f7a8086aedf6af1e1直觉上,这感觉像是错误的解决方案,因为代码看起来像是标准库中可能已经存在的相当低级的