mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-24 02:03:38 +08:00
issue 43 "go fmt" chagnes from "Ryan S. Brown" <sb@ryansb.com>
some basic changes to parse upload url
This commit is contained in:
@@ -6,7 +6,7 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
func DeleteFile(server string, fileId string) (error) {
|
||||
func DeleteFile(server string, fileId string) error {
|
||||
fid, parseErr := storage.ParseFileId(fileId)
|
||||
if parseErr != nil {
|
||||
return parseErr
|
||||
|
@@ -2,9 +2,9 @@ package replication
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/operation"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"net/http"
|
||||
"strconv"
|
||||
)
|
||||
|
@@ -1,12 +1,12 @@
|
||||
package replication
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/operation"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/topology"
|
||||
"errors"
|
||||
"fmt"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"math/rand"
|
||||
"sync"
|
||||
)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package sequence
|
||||
|
||||
import (
|
||||
"encoding/gob"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"encoding/gob"
|
||||
"os"
|
||||
"path"
|
||||
"sync"
|
||||
|
@@ -76,6 +76,9 @@ func (m cdbMap) FileCount() int {
|
||||
func (m *cdbMap) DeletedCount() int {
|
||||
return m.DeletionCounter
|
||||
}
|
||||
func (m *cdbMap) NextFileKey(count int) (uint64) {
|
||||
return 0
|
||||
}
|
||||
|
||||
func getMetric(c *cdb.Cdb, m *mapMetric) error {
|
||||
data, err := c.Data([]byte{'M'})
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
@@ -2,9 +2,9 @@ package storage
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"compress/flate"
|
||||
"compress/gzip"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"io/ioutil"
|
||||
"strings"
|
||||
)
|
||||
|
@@ -1,10 +1,10 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"encoding/hex"
|
||||
"io/ioutil"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"mime"
|
||||
"net/http"
|
||||
"path"
|
||||
@@ -127,9 +127,6 @@ func NewNeedle(r *http.Request) (n *Needle, e error) {
|
||||
func (n *Needle) ParsePath(fid string) {
|
||||
length := len(fid)
|
||||
if length <= 8 {
|
||||
if length > 0 {
|
||||
glog.V(0).Infoln("Invalid fid", fid, "length", length)
|
||||
}
|
||||
return
|
||||
}
|
||||
delta := ""
|
||||
|
@@ -2,6 +2,7 @@ package storage
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"fmt"
|
||||
"io"
|
||||
@@ -18,6 +19,7 @@ type NeedleMapper interface {
|
||||
FileCount() int
|
||||
DeletedCount() int
|
||||
Visit(visit func(NeedleValue) error) (err error)
|
||||
NextFileKey(count int) uint64
|
||||
}
|
||||
|
||||
type mapMetric struct {
|
||||
@@ -25,6 +27,7 @@ type mapMetric struct {
|
||||
FileCounter int `json:"FileCounter"`
|
||||
DeletionByteCounter uint64 `json:"DeletionByteCounter"`
|
||||
FileByteCounter uint64 `json:"FileByteCounter"`
|
||||
MaximumFileKey uint64 `json:"MaxFileKey"`
|
||||
}
|
||||
|
||||
type NeedleMap struct {
|
||||
@@ -53,23 +56,27 @@ const (
|
||||
func LoadNeedleMap(file *os.File) (*NeedleMap, error) {
|
||||
nm := NewNeedleMap(file)
|
||||
e := walkIndexFile(file, func(key uint64, offset, size uint32) error {
|
||||
if key > nm.MaximumFileKey {
|
||||
nm.MaximumFileKey = key
|
||||
}
|
||||
nm.FileCounter++
|
||||
nm.FileByteCounter = nm.FileByteCounter + uint64(size)
|
||||
if offset > 0 {
|
||||
oldSize := nm.m.Set(Key(key), offset, size)
|
||||
//glog.V(0).Infoln("reading key", key, "offset", offset, "size", size, "oldSize", oldSize)
|
||||
glog.V(4).Infoln("reading key", key, "offset", offset, "size", size, "oldSize", oldSize)
|
||||
if oldSize > 0 {
|
||||
nm.DeletionCounter++
|
||||
nm.DeletionByteCounter = nm.DeletionByteCounter + uint64(oldSize)
|
||||
}
|
||||
} else {
|
||||
oldSize := nm.m.Delete(Key(key))
|
||||
//glog.V(0).Infoln("removing key", key, "offset", offset, "size", size, "oldSize", oldSize)
|
||||
glog.V(4).Infoln("removing key", key, "offset", offset, "size", size, "oldSize", oldSize)
|
||||
nm.DeletionCounter++
|
||||
nm.DeletionByteCounter = nm.DeletionByteCounter + uint64(oldSize)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
glog.V(1).Infoln("max file key:", nm.MaximumFileKey)
|
||||
return nm, e
|
||||
}
|
||||
|
||||
@@ -163,3 +170,14 @@ func (nm NeedleMap) DeletedCount() int {
|
||||
func (nm *NeedleMap) Visit(visit func(NeedleValue) error) (err error) {
|
||||
return nm.m.Visit(visit)
|
||||
}
|
||||
func (nm NeedleMap) MaxFileKey() uint64 {
|
||||
return nm.MaximumFileKey
|
||||
}
|
||||
func (nm NeedleMap) NextFileKey(count int) (ret uint64) {
|
||||
if count <= 0 {
|
||||
return 0
|
||||
}
|
||||
ret = nm.MaximumFileKey
|
||||
nm.MaximumFileKey += uint64(count)
|
||||
return
|
||||
}
|
||||
|
@@ -1,11 +1,11 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
@@ -1,11 +1,11 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"net/url"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package topology
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
)
|
||||
|
||||
type NodeId string
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package topology
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
|
@@ -1,11 +1,11 @@
|
||||
package topology
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/sequence"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"errors"
|
||||
"io/ioutil"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"math/rand"
|
||||
)
|
||||
|
||||
|
@@ -1,11 +1,11 @@
|
||||
package topology
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/util"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"net/url"
|
||||
"time"
|
||||
)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package topology
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"math/rand"
|
||||
"time"
|
||||
)
|
||||
|
@@ -10,8 +10,8 @@ package util
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"encoding/json"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"net/url"
|
||||
)
|
||||
|
@@ -3,9 +3,9 @@ package main
|
||||
import (
|
||||
"archive/tar"
|
||||
"bytes"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"fmt"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"code.google.com/p/weed-fs/go/storage"
|
||||
"os"
|
||||
"path"
|
||||
"strconv"
|
||||
|
@@ -182,7 +182,7 @@ func volumeStatusHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
func redirectHandler(w http.ResponseWriter, r *http.Request) {
|
||||
vid, _, _, _ := parseURLPath(r.URL.Path)
|
||||
vid, _, _, _, _ := parseURLPath(r.URL.Path)
|
||||
volumeId, err := storage.NewVolumeId(vid)
|
||||
if err != nil {
|
||||
debug("parsing error:", err, r.URL.Path)
|
||||
|
@@ -2,8 +2,8 @@ package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"code.google.com/p/weed-fs/go/glog"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
|
@@ -118,7 +118,7 @@ func storeHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
func GetOrHeadHandler(w http.ResponseWriter, r *http.Request, isGetMethod bool) {
|
||||
n := new(storage.Needle)
|
||||
vid, fid, filename, ext := parseURLPath(r.URL.Path)
|
||||
vid, fid, filename, ext, _ := parseURLPath(r.URL.Path)
|
||||
volumeId, err := storage.NewVolumeId(vid)
|
||||
if err != nil {
|
||||
debug("parsing error:", err, r.URL.Path)
|
||||
@@ -207,7 +207,7 @@ func PostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
writeJsonError(w, r, e)
|
||||
return
|
||||
}
|
||||
vid, _, _, _ := parseURLPath(r.URL.Path)
|
||||
vid, _, _, _, _ := parseURLPath(r.URL.Path)
|
||||
volumeId, ve := storage.NewVolumeId(vid)
|
||||
if ve != nil {
|
||||
debug("NewVolumeId error:", ve)
|
||||
@@ -231,7 +231,7 @@ func PostHandler(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
func DeleteHandler(w http.ResponseWriter, r *http.Request) {
|
||||
n := new(storage.Needle)
|
||||
vid, fid, _, _ := parseURLPath(r.URL.Path)
|
||||
vid, fid, _, _, _ := parseURLPath(r.URL.Path)
|
||||
volumeId, _ := storage.NewVolumeId(vid)
|
||||
n.ParsePath(fid)
|
||||
|
||||
@@ -266,7 +266,7 @@ func DeleteHandler(w http.ResponseWriter, r *http.Request) {
|
||||
writeJsonQuiet(w, r, m)
|
||||
}
|
||||
|
||||
func parseURLPath(path string) (vid, fid, filename, ext string) {
|
||||
func parseURLPath(path string) (vid, fid, filename, ext string, isVolumeIdOnly bool) {
|
||||
switch strings.Count(path, "/") {
|
||||
case 3:
|
||||
parts := strings.Split(path, "/")
|
||||
@@ -284,9 +284,7 @@ func parseURLPath(path string) (vid, fid, filename, ext string) {
|
||||
sepIndex := strings.LastIndex(path, "/")
|
||||
commaIndex := strings.LastIndex(path[sepIndex:], ",")
|
||||
if commaIndex <= 0 {
|
||||
if "favicon.ico" != path[sepIndex+1:] {
|
||||
glog.V(0).Infoln("unknown file id", path[sepIndex+1:])
|
||||
}
|
||||
vid, isVolumeIdOnly = path[sepIndex+1:], true
|
||||
return
|
||||
}
|
||||
dotIndex := strings.LastIndex(path[sepIndex:], ".")
|
||||
|
Reference in New Issue
Block a user