support AWS SQS as file change notification message queue

This commit is contained in:
Chris Lu
2018-10-31 01:11:19 -07:00
parent 200cbcde62
commit 4c97ff3717
9 changed files with 282 additions and 4 deletions

View File

@@ -0,0 +1,51 @@
package filer2
import (
"testing"
"time"
"github.com/chrislusf/seaweedfs/weed/pb/filer_pb"
"github.com/golang/protobuf/proto"
)
func TestProtoMarshalText(t *testing.T) {
oldEntry := &Entry{
FullPath: FullPath("/this/path/to"),
Attr: Attr{
Mtime: time.Now(),
Mode: 0644,
Uid: 1,
Mime: "text/json",
TtlSec: 25,
},
Chunks: []*filer_pb.FileChunk{
&filer_pb.FileChunk{
FileId: "234,2423423422",
Offset: 234234,
Size: 234,
Mtime: 12312423,
ETag: "2342342354",
SourceFileId: "23234,2342342342",
},
},
}
notification := &filer_pb.EventNotification{
OldEntry: toProtoEntry(oldEntry),
NewEntry: toProtoEntry(nil),
DeleteChunks: true,
}
text := proto.MarshalTextString(notification)
notification2 := &filer_pb.EventNotification{}
proto.UnmarshalText(text, notification2)
if notification2.OldEntry.Chunks[0].SourceFileId != notification.OldEntry.Chunks[0].SourceFileId {
t.Fatalf("marshal/unmarshal error: %s", text)
}
println(text)
}