changed from os.file to backend.DataStorageBackend
This commit is contained in:
15
weed/storage/backend/backend.go
Normal file
15
weed/storage/backend/backend.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package backend
|
||||
|
||||
import (
|
||||
"io"
|
||||
"time"
|
||||
)
|
||||
|
||||
type DataStorageBackend interface {
|
||||
io.ReaderAt
|
||||
io.WriterAt
|
||||
Truncate(off int64) error
|
||||
io.Closer
|
||||
GetStat() (datSize int64, modTime time.Time, err error)
|
||||
String() string
|
||||
}
|
||||
50
weed/storage/backend/disk_file.go
Normal file
50
weed/storage/backend/disk_file.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package backend
|
||||
|
||||
import (
|
||||
"os"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
_ DataStorageBackend = &DiskFile{}
|
||||
)
|
||||
|
||||
type DiskFile struct {
|
||||
File *os.File
|
||||
fullFilePath string
|
||||
}
|
||||
|
||||
func NewDiskFile(fullFilePath string, f *os.File) *DiskFile {
|
||||
return &DiskFile{
|
||||
fullFilePath: fullFilePath,
|
||||
File: f,
|
||||
}
|
||||
}
|
||||
|
||||
func (df *DiskFile) ReadAt(p []byte, off int64) (n int, err error) {
|
||||
return df.File.ReadAt(p, off)
|
||||
}
|
||||
|
||||
func (df *DiskFile) WriteAt(p []byte, off int64) (n int, err error) {
|
||||
return df.File.WriteAt(p, off)
|
||||
}
|
||||
|
||||
func (df *DiskFile) Truncate(off int64) error {
|
||||
return df.File.Truncate(off)
|
||||
}
|
||||
|
||||
func (df *DiskFile) Close() error {
|
||||
return df.File.Close()
|
||||
}
|
||||
|
||||
func (df *DiskFile) GetStat() (datSize int64, modTime time.Time, err error) {
|
||||
stat, e := df.File.Stat()
|
||||
if e == nil {
|
||||
return stat.Size(), stat.ModTime(), nil
|
||||
}
|
||||
return 0, time.Time{}, err
|
||||
}
|
||||
|
||||
func (df *DiskFile) String() string {
|
||||
return df.fullFilePath
|
||||
}
|
||||
Reference in New Issue
Block a user