diff options
| author | tnextday <fw2k4@163.com> | 2015-12-01 20:23:50 +0800 |
|---|---|---|
| committer | tnextday <fw2k4@163.com> | 2015-12-01 20:23:50 +0800 |
| commit | 6b0894d80635047479548bb19029300a596b4d55 (patch) | |
| tree | aef605f25524928a3c5aa0092f4aa5cf6e39f7b1 /go/storage | |
| parent | f825d237890c7df70c3d752668ddbc2deab3890e (diff) | |
| download | seaweedfs-6b0894d80635047479548bb19029300a596b4d55.tar.xz seaweedfs-6b0894d80635047479548bb19029300a596b4d55.zip | |
update ChunkedFile to seekable reader, so we can use io.* to read data
Diffstat (limited to 'go/storage')
| -rw-r--r-- | go/storage/needle.go | 11 | ||||
| -rw-r--r-- | go/storage/needle_read_write.go | 10 |
2 files changed, 13 insertions, 8 deletions
diff --git a/go/storage/needle.go b/go/storage/needle.go index 04a9dc78d..c09ad061a 100644 --- a/go/storage/needle.go +++ b/go/storage/needle.go @@ -52,7 +52,7 @@ func (n *Needle) String() (str string) { return } -func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string, isGzipped bool, modifiedTime uint64, ttl *TTL, e error) { +func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string, isGzipped bool, modifiedTime uint64, ttl *TTL, isChunkedFile bool, e error) { form, fe := r.MultipartReader() if fe != nil { glog.V(0).Infoln("MultipartReader [ERROR]", fe) @@ -132,12 +132,13 @@ func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string } modifiedTime, _ = strconv.ParseUint(r.FormValue("ts"), 10, 64) ttl, _ = ReadTTL(r.FormValue("ttl")) + isChunkedFile, _ = strconv.ParseBool(r.FormValue("cf")) return } func NewNeedle(r *http.Request, fixJpgOrientation bool) (n *Needle, e error) { - fname, mimeType, isGzipped := "", "", false + fname, mimeType, isGzipped, isChunkedFile := "", "", false, false n = new(Needle) - fname, n.Data, mimeType, isGzipped, n.LastModified, n.Ttl, e = ParseUpload(r) + fname, n.Data, mimeType, isGzipped, n.LastModified, n.Ttl, isChunkedFile, e = ParseUpload(r) if e != nil { return } @@ -160,6 +161,10 @@ func NewNeedle(r *http.Request, fixJpgOrientation bool) (n *Needle, e error) { n.SetHasTtl() } + if isChunkedFile { + n.SetChunkedFile() + } + if fixJpgOrientation { loweredName := strings.ToLower(fname) if mimeType == "image/jpeg" || strings.HasSuffix(loweredName, ".jpg") || strings.HasSuffix(loweredName, ".jpeg") { diff --git a/go/storage/needle_read_write.go b/go/storage/needle_read_write.go index 2a5bd89ea..28b0e8fde 100644 --- a/go/storage/needle_read_write.go +++ b/go/storage/needle_read_write.go @@ -16,7 +16,7 @@ const ( FlagHasMime = 0x04 FlagHasLastModifiedDate = 0x08 FlagHasTtl = 0x10 - FlagChunkList = 0x80 + FlagChunkedFile = 0x80 LastModifiedBytesLength = 5 TtlBytesLength = 2 ) @@ -282,10 +282,10 @@ func (n *Needle) SetHasTtl() { n.Flags = n.Flags | FlagHasTtl } -func (n *Needle) IsChunkList() bool { - return n.Flags&FlagChunkList > 0 +func (n *Needle) IsChunkedFile() bool { + return n.Flags&FlagChunkedFile > 0 } -func (n *Needle) SetChunkList() { - n.Flags = n.Flags | FlagChunkList +func (n *Needle) SetChunkedFile() { + n.Flags = n.Flags | FlagChunkedFile } |
