Merge branch 'master' into 2871-preload-objects
[arvados.git] / services / keep / src / keep / volume_unix.go
index 95e0f4b0ebe0639d1529ce903e5fdd57b3fa8730..7b711d2eac1e7c6f5024cc49f723dc31c6c86952 100644 (file)
@@ -109,26 +109,14 @@ func (v *UnixVolume) Put(loc string, block []byte) error {
 // corrupted data block.
 //
 func (v *UnixVolume) Read(loc string) ([]byte, error) {
-       var f *os.File
-       var err error
-       var nread int
-
-       blockFilename := fmt.Sprintf("%s/%s/%s", v.root, loc[0:3], loc)
-
-       f, err = os.Open(blockFilename)
-       if err != nil {
-               return nil, err
-       }
-
-       var buf = make([]byte, BLOCKSIZE)
-       nread, err = f.Read(buf)
+       blockFilename := filepath.Join(v.root, loc[0:3], loc)
+       buf, err := ioutil.ReadFile(blockFilename)
        if err != nil {
                log.Printf("%s: reading %s: %s\n", v, blockFilename, err)
-               return buf, err
+               return nil, err
        }
 
-       // Success!
-       return buf[:nread], nil
+       return buf, nil
 }
 
 // Write stores a block of data identified by the locator string
@@ -140,7 +128,7 @@ func (v *UnixVolume) Write(loc string, block []byte) error {
        if v.IsFull() {
                return FullError
        }
-       blockDir := fmt.Sprintf("%s/%s", v.root, loc[0:3])
+       blockDir := filepath.Join(v.root, loc[0:3])
        if err := os.MkdirAll(blockDir, 0755); err != nil {
                log.Printf("%s: could not create directory %s: %s",
                        loc, blockDir, err)
@@ -152,7 +140,7 @@ func (v *UnixVolume) Write(loc string, block []byte) error {
                log.Printf("ioutil.TempFile(%s, tmp%s): %s", blockDir, loc, tmperr)
                return tmperr
        }
-       blockFilename := fmt.Sprintf("%s/%s", blockDir, loc)
+       blockFilename := filepath.Join(blockDir, loc)
 
        if _, err := tmpfile.Write(block); err != nil {
                log.Printf("%s: writing to %s: %s\n", v, blockFilename, err)