我试图用Go读取一个gzipped HTTP响应!但我总是收到以下错误消息:
panic: gzip: invalid header
[...] stack trace [...]
Run Code Online (Sandbox Code Playgroud)
如果我运行"curl -H"接受编码:gzip" http://foo.com/ | gunzip - "我得到了正确的枪杀响应.我还用ngrep进行了双重检查,正确发送/返回了一对Accept-Encoding/Content-Encoding.
如果我创建一个包含一些虚拟内容的文件并对其进行gzip,我可以从Go中读取它!程序.
我用来测试的程序:
package main
import (
"io"
//"os"
"fmt"
"compress/gzip"
"net/http"
)
func main() {
/* This works fine
f, _ := os.Open("/tmp/test.gz")
defer f.Close()
reader, err := gzip.NewReader(f)
*/
// This does not :/
resp, _ := http.Get("http://foo.com/")
defer resp.Body.Close()
reader, err := gzip.NewReader(resp.Body)
if err != nil { panic(err) }
buff := make([]byte, 1024)
for {
n, err := reader.Read(buff)
if …Run Code Online (Sandbox Code Playgroud) 我的问题如下:
你觉得这可能吗?
我做了一些研究,似乎不太可能,但我可能忽略了一些东西.
谢谢 :)
第一个二进制文件包含类似的内容
func main() {
// Here I need to compile an external go file (or package) which contains
// The definition of runFoo()
// Once the file/package is compiled and linked I need to call the compiled code
runFoo()
// Continue the execution process normally here
}
Run Code Online (Sandbox Code Playgroud) 运行hudson很容易,但目前文档缺少在OS X上安装正在运行的hudson作为守护进程/服务的教程.
切换到生产时,您需要确保正确配置和保护.
要求:
最好的,是安装脚本,下载最新的哈德森并安装它.
我们将整合Hudson wiki的最佳答案.
资源:
我需要在我的应用程序中使用多个时区.
基本上我的系统生成数据,来自地球上任何地方的客户都可以访问它.
由于我的数据有一个相关的时间戳,我想到了以下处理时区的策略.
在Postgres:
使用::timestamptz我的时间戳的类型创建我的表.没有时区的时间戳不允许混合::timestamp,::timestamptz在我的情况下看起来像一颗定时炸弹.
将我的PG服务器系统的时区设置为UTC.
设置timezone='UTC'在postgresql.conf(可能并不需要,如果系统的TZ是UTC,但我是一个有点偏执,它花了我什么).
创建表时添加以下检查:
CONSTRAINT timestamp_must_be_utc CHECK(date_part('timezone':: text,"my_timestamp_field")= 0 :: double precision)
以UTC格式存储我的所有时间戳
在客户端(python + pytz)
将客户的时区存储在他的个人资料中,例如 'America/Los Angeles'
在查询数据时将时区信息发送到postgres,这样我就能获得类似的东西SELECT xxxx FROM yyyy WHERE my_ts >= '2012-11-27 19:13:00+01'::timestamptz,让Postgres转换为UTC.或者我可以使用pytz进行转换,但似乎Postgres会做得很好.
根据客户的时区转换时间戳,以便我可以正确显示数据+时间戳.
总而言之,我计划在任何地方使用UTC来存储和查询数据,并在显示数据时只使用时区转换.
我对Postgres及其处理时区的方式没有多少经验.我知道处理不同时区的日期和时间是多么困难(一旦你必须使用航班时刻表,你就会学到使用UTC是唯一可行的日期和时间微积分的方法)这就是我要问的原因这个问题让我更有经验的postgres用户可以确认或纠正我的策略.
有趣的链接: