aboutsummaryrefslogtreecommitdiff
path: root/go/storage
diff options
context:
space:
mode:
authortnextday <fw2k4@163.com>2015-12-02 21:27:29 +0800
committertnextday <fw2k4@163.com>2015-12-02 21:27:29 +0800
commit662915e6915d18a9e45b73577f93ef3be6562f4e (patch)
treeef44a0237091e1bc2d395679372b87e682ebbb96 /go/storage
parent520875d45504f0b659de7f4ff656634489100416 (diff)
downloadseaweedfs-662915e6915d18a9e45b73577f93ef3be6562f4e.tar.xz
seaweedfs-662915e6915d18a9e45b73577f93ef3be6562f4e.zip
Delete all chunks when delete a ChunkManifest
LoadChunkManifest can uncompress buffer move compress.go from storage to operation because of import cycle MakeFile add cross complete command
Diffstat (limited to 'go/storage')
-rw-r--r--go/storage/compress.go59
-rw-r--r--go/storage/needle.go5
2 files changed, 3 insertions, 61 deletions
diff --git a/go/storage/compress.go b/go/storage/compress.go
deleted file mode 100644
index 4047c1723..000000000
--- a/go/storage/compress.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package storage
-
-import (
- "bytes"
- "compress/flate"
- "compress/gzip"
- "io/ioutil"
- "strings"
-
- "github.com/chrislusf/seaweedfs/go/glog"
-)
-
-/*
-* Default more not to gzip since gzip can be done on client side.
- */
-func IsGzippable(ext, mtype string) bool {
- if strings.HasPrefix(mtype, "text/") {
- return true
- }
- switch ext {
- case ".zip", ".rar", ".gz", ".bz2", ".xz":
- return false
- case ".pdf", ".txt", ".html", ".htm", ".css", ".js", ".json":
- return true
- }
- if strings.HasPrefix(mtype, "application/") {
- if strings.HasSuffix(mtype, "xml") {
- return true
- }
- if strings.HasSuffix(mtype, "script") {
- return true
- }
- }
- return false
-}
-
-func GzipData(input []byte) ([]byte, error) {
- buf := new(bytes.Buffer)
- w, _ := gzip.NewWriterLevel(buf, flate.BestCompression)
- if _, err := w.Write(input); err != nil {
- glog.V(2).Infoln("error compressing data:", err)
- return nil, err
- }
- if err := w.Close(); err != nil {
- glog.V(2).Infoln("error closing compressed data:", err)
- return nil, err
- }
- return buf.Bytes(), nil
-}
-func UnGzipData(input []byte) ([]byte, error) {
- buf := bytes.NewBuffer(input)
- r, _ := gzip.NewReader(buf)
- defer r.Close()
- output, err := ioutil.ReadAll(r)
- if err != nil {
- glog.V(2).Infoln("error uncompressing data:", err)
- }
- return output, err
-}
diff --git a/go/storage/needle.go b/go/storage/needle.go
index e1902e461..32ebdae7d 100644
--- a/go/storage/needle.go
+++ b/go/storage/needle.go
@@ -15,6 +15,7 @@ import (
"github.com/chrislusf/seaweedfs/go/glog"
"github.com/chrislusf/seaweedfs/go/images"
"github.com/chrislusf/seaweedfs/go/util"
+ "github.com/chrislusf/seaweedfs/go/operation"
)
const (
@@ -117,8 +118,8 @@ func ParseUpload(r *http.Request) (fileName string, data []byte, mimeType string
}
if part.Header.Get("Content-Encoding") == "gzip" {
isGzipped = true
- } else if IsGzippable(ext, mtype) {
- if data, e = GzipData(data); e != nil {
+ } else if operation.IsGzippable(ext, mtype) {
+ if data, e = operation.GzipData(data); e != nil {
return
}
isGzipped = true