working commit
This commit is contained in:
+39
-1
@@ -1,6 +1,7 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"crypto/sha256"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
@@ -309,7 +310,7 @@ func (store *Storage) WriteBlob(digest string, source io.Reader) (int64, string,
|
||||
return recsize, recsum, err
|
||||
}
|
||||
|
||||
func (st *Storage) BlobFileExists(digest string) (bool, int64, error) {
|
||||
func (st *Storage) BlobExists(digest string) (bool, int64, error) {
|
||||
var err error
|
||||
var fileSize int64
|
||||
|
||||
@@ -326,3 +327,40 @@ func (st *Storage) BlobFileExists(digest string) (bool, int64, error) {
|
||||
fileSize = fileStat.Size()
|
||||
return true, fileSize, err
|
||||
}
|
||||
|
||||
func (store *Storage) BlobReader(digest string) (int64, io.ReadCloser, error) {
|
||||
var err error
|
||||
var filesize int64
|
||||
blobpath := store.makeBlobpath(digest)
|
||||
|
||||
emptyReadCloser := io.NopCloser(bytes.NewReader(nil))
|
||||
|
||||
file, err := os.OpenFile(blobpath, os.O_RDONLY, 0)
|
||||
if err != nil {
|
||||
return filesize, emptyReadCloser, err
|
||||
}
|
||||
defer func() {
|
||||
if err != nil {
|
||||
file.Close()
|
||||
}
|
||||
}()
|
||||
filestat, err := file.Stat()
|
||||
if err != nil {
|
||||
return filesize, emptyReadCloser, err
|
||||
}
|
||||
filesize = filestat.Size()
|
||||
return filesize, file, err
|
||||
}
|
||||
|
||||
func (store *Storage) DeleteBlob(digest string) error {
|
||||
var err error
|
||||
blobpath := store.makeBlobpath(digest)
|
||||
err = os.Remove(blobpath)
|
||||
if errors.Is(err, os.ErrNotExist) {
|
||||
err = nil
|
||||
}
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user