diff options
| author | Chris Lu <chris.lu@gmail.com> | 2020-01-19 12:06:19 -0800 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2020-01-19 12:06:19 -0800 |
| commit | 39edcfde4cdd867a5c36211f9e355e2a470f87d5 (patch) | |
| tree | a8ed79898440f9636f13121e6c7d74c06ce499eb /weed/util/bytes.go | |
| parent | e9bb0c179fff7016bc4150be8082383f1425a2c7 (diff) | |
| download | seaweedfs-39edcfde4cdd867a5c36211f9e355e2a470f87d5.tar.xz seaweedfs-39edcfde4cdd867a5c36211f9e355e2a470f87d5.zip | |
filer: set inode
avoid "getcwd: No such file or directory"
Diffstat (limited to 'weed/util/bytes.go')
| -rw-r--r-- | weed/util/bytes.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/weed/util/bytes.go b/weed/util/bytes.go index dfa4ae665..9c7e5e2cb 100644 --- a/weed/util/bytes.go +++ b/weed/util/bytes.go @@ -1,5 +1,10 @@ package util +import ( + "crypto/md5" + "io" +) + // big endian func BytesToUint64(b []byte) (v uint64) { @@ -43,3 +48,29 @@ func Uint16toBytes(b []byte, v uint16) { func Uint8toBytes(b []byte, v uint8) { b[0] = byte(v) } + +// returns a 64 bit big int +func HashStringToLong(dir string) (v int64) { + h := md5.New() + io.WriteString(h, dir) + + b := h.Sum(nil) + + v += int64(b[0]) + v <<= 8 + v += int64(b[1]) + v <<= 8 + v += int64(b[2]) + v <<= 8 + v += int64(b[3]) + v <<= 8 + v += int64(b[4]) + v <<= 8 + v += int64(b[5]) + v <<= 8 + v += int64(b[6]) + v <<= 8 + v += int64(b[7]) + + return +} |
