本文整理汇总了Golang中datawriter/writer.NimbusioWriter.StartSegment方法的典型用法代码示例。如果您正苦于以下问题:Golang NimbusioWriter.StartSegment方法的具体用法?Golang NimbusioWriter.StartSegment怎么用?Golang NimbusioWriter.StartSegment使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类datawriter/writer.NimbusioWriter
的用法示例。
在下文中一共展示了NimbusioWriter.StartSegment方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: handleArchiveKeyEntire
func handleArchiveKeyEntire(message types.Message,
nimbusioWriter writer.NimbusioWriter,
replyChan chan<- *reply.ReplyMessage) {
var archiveKeyEntire msg.ArchiveKeyEntire
var md5Digest []byte
var err error
var valueFileID uint32
archiveKeyEntire, err = msg.UnmarshalArchiveKeyEntire(message.Marshalled)
if err != nil {
fog.Error("UnmarshalArchiveKeyEntire failed %s", err)
return
}
replyMessage := reply.NewReplyMessage("archive-key-final", message.ID,
archiveKeyEntire.UserRequestID, archiveKeyEntire.ReturnAddress)
lgr := logger.NewLogger(archiveKeyEntire.UserRequestID, archiveKeyEntire.UnifiedID,
archiveKeyEntire.ConjoinedPart, archiveKeyEntire.SegmentNum, archiveKeyEntire.Key)
lgr.Info("archive-key-entire")
if archiveKeyEntire.SegmentSize != uint64(len(message.Data)) {
lgr.Error("size mismatch (%d != %d)", archiveKeyEntire.SegmentSize,
len(message.Data))
replyMessage.Error("size-mismatch", "segment size does not match expected value")
replyChan <- replyMessage
return
}
md5Digest, err = base64.StdEncoding.DecodeString(archiveKeyEntire.EncodedSegmentMD5Digest)
if err != nil {
lgr.Error("base64.StdEncoding.DecodeString %s", err)
replyMessage.Error("base64", "base64.StdEncoding.DecodeString")
replyChan <- replyMessage
return
}
if !MD5DigestMatches(message.Data, md5Digest) {
lgr.Error("md5 mismatch")
replyMessage.Error("md5-mismatch", "segment md5 does not match expected value")
replyChan <- replyMessage
return
}
err = nimbusioWriter.StartSegment(archiveKeyEntire.UserRequestID, archiveKeyEntire.Segment,
archiveKeyEntire.NodeNames)
if err != nil {
lgr.Error("StartSegment: %s", err)
replyMessage.Error("error", err.Error())
replyChan <- replyMessage
return
}
valueFileID, err = nimbusioWriter.StoreSequence(
archiveKeyEntire.UserRequestID,
archiveKeyEntire.Segment,
archiveKeyEntire.Sequence, message.Data)
if err != nil {
lgr.Error("StoreSequence: %s", err)
replyMessage.Error("error", err.Error())
replyChan <- replyMessage
return
}
metaData := msg.GetMetaFromJSON(message.Marshalled)
err = nimbusioWriter.FinishSegment(archiveKeyEntire.UserRequestID,
archiveKeyEntire.Segment,
archiveKeyEntire.File,
metaData,
valueFileID)
if err != nil {
lgr.Error("FinishSegment: %s", err)
replyMessage.Error("error", err.Error())
replyChan <- replyMessage
return
}
replyMessage.Success()
replyChan <- replyMessage
return
}