草庐IT

UNIX-based

全部标签

unix 的 golang jsonMarshal 时间戳

我尝试json.UnMarshal自定义类型TimeStamp并遇到准确性问题。这是示例:typeTimeStampint64typeDstruct{Namestring`json:"name"`Ageint`json:"age"`TsTimeStamp`json:"ts"`}func(dTimeStamp)MarshalJSON()([]byte,error){rs:=time.Unix(int64(d),0).Format("2006-01-02")js,er:=json.Marshal(rs)returnjs,er}func(d*TimeStamp)UnmarshalJSON(d

go - UUID 的 Base 64 编码 - 用作访问 token

我正在编写一个GoLangOauth应用程序,我在其中使用以下方法生成UUID,然后从UUID生成accessToken。import"github.com/pborman/uuid"uuid:=uuid.NewRandom()accessToken=base64.RawURLEncoding.EncodeToString([]byte(uuid))想知道token的base64编码是否与UUID一样唯一,因为accessToken在我的MYSQL数据库中将具有唯一索引,并且如果发生冲突将失败。 最佳答案 Base64只是一种编码。

unix - go语言os.FileMode函数是如何从integers/octal/转换权限的???在设置标志之前?

更新:根据目前的评论和回复,我想我应该明确表示我理解0700是十进制数448的八进制表示。我关心的是当一个八进制mode参数,或者当一个十进制数被重铸为八进制数并传递给os.FileMode方法时,使用WriteFile创建的文件的最终权限似乎没有以一种有意义的方式排列。我尽我所能将问题的规模缩小到本质,也许我需要再做一轮Update2:重新阅读后,我想我可以更简洁地陈述我的问题。调用os.FileMode(700)应该与使用二进制值1-010-111-100调用它相同。对于这9个最低有效位,应该有以下权限:--w-rwxr--或八进制的274(并转换回相反,FileMode导致Wri

go - 如何从base64编码字符串中获取原始文件大小

我想从字符串变量中获取原始文件的大小,该变量是使用base64编码文件获得的。packagemainimport("bufio""encoding/base64""io/ioutil""os")funcencodeFile(filestring)string{f,err:=os.Open(file)iferr!=nil{panic(err)}reader:=bufio.NewReader(f)content,_:=ioutil.ReadAll(reader)encoded:=base64.StdEncoding.EncodeToString(content)returnencoded}

go - 将换行符添加到 base64url 字符串

我有一个发送base64url编码字符串的程序,但我在某些地方读到base64不支持'\'字符。我的目的是用GmailAPI发送电子邮件在去。正文部分由以下部分组成:"Name:\n\nThisisthebodyoftheemail\n\nSincerely,\nSenderName"当我sendemailsthroughtheGmailAPI,我需要向它传递一个base64url字符串。我有以下功能来处理:funcencodeWeb64String(b[]byte)string{s:=base64.URLEncoding.EncodeToString(b)vari=len(s)-1f

time - 在 Go 中获取 Unix 时间戳的正确方法是什么

在Go中获取Unix时间戳的正确方法是什么?我以为它会是time.Now().Unix()但显然不是。http://play.golang.org/p/KoJADUDxOStime.Now().Unix()告诉我unix时间戳是1257894000而我的浏览器告诉我它是1398351437。www.unixtimestamp.de还告诉我它是1398351704,这是我所期望的。为什么来自Go的那个这么远?顺便说一句,我在本地机器上得到了相同的结果。我错过了什么?更新好吧,事实证明这真的只是play.golang.org上的一个问题。我以为我也在本地测试过它,但我现在又看了一眼,是的,

xml - 在go中将数组编码为base64

这是我开发的功能的完整代码:packagemainimport("database/sql""log""encoding/xml""github.com/gin-gonic/gin"//golangframeworks_"github.com/go-sql-driver/mysql""gopkg.in/gorp.v1"//workwithdatabase(mysql,etc.))typeGenrestruct{Titlestring`xml:"genre"`}typeGenreArraystruct{Auth_stateint`xml:"auth_state"`Countint64`x

unix - 从命令行嵌套 JSON 运行 Go

我可以想到如何使它正常工作的变通方法,但是我很想知道是否有针对这个特定问题的解决方案。我有一个需要json字符串参数的go程序:gorunmain.go"{\"field\":\"value\"}"到目前为止没有问题。但是,如果其中一个json值是另一个json字符串,我是否可以从命令行运行?gorunmain.go"{\"json-string\":\"{\"nestedfield\":\"nestedvalue\"}\"}"添加转义字符似乎错误地匹配了开始和结束引号。我是在误解这是如何完成的,还是根本不可能(这是我要反对的一面)?重申一下,这是一个激起我好奇心的问题-我知道有其他方

image - Go - 将 base64 字符串保存到文件

所以..我有一个base64编码的字符串,我需要对其进行解码,检查它的宽度和高度,然后保存到文件中。然而..我一直在保存损坏的图像文件。packageserverimport("encoding/base64""errors""io""os""strings""image"_"image/gif"_"image/jpeg"_"image/png")var(ErrBucket=errors.New("Invalidbucket!")ErrSize=errors.New("Invalidsize!")ErrInvalidImage=errors.New("Invalidimage!"))f

go - 将时间字段编码为 Unix 时间

我想将我的time.Time字段编码为数字Unix时间,我不想为每个结构实现自定义MarshalJSON函数,因为我有很多很多结构。所以,我尝试定义一个类型别名:类型时间戳time.Time并像这样在其上实现MarshalJSON:func(tTimestamp)MarshalJSON()([]byte,error){return[]byte(strconv.FormatInt(t.Unix(),10)),nil}但这给了我一个t.Unixundefined(typeTimestamphasnofieldormethodUnix),这对我来说没有意义。Timestamp不应该“继承”(