M shared/storage/files/file.go →
shared/storage/files/file.go }
func (r *Reader) OpenFile(path string, filename string) (*storage.File, error) {
- f, err := os.Open(filename)
+ file, err := storage.NewFile(path, filename)
if err != nil {
- return nil, fault.Wrap(err, fmsg.With("could not open file for reading"))
- }
- stat, err := f.Stat()
- if err != nil {
- return nil, fault.Wrap(err, fmsg.With("could not stat file"))
+ return nil, fault.Wrap(err, fmsg.With("could not init file"))
}
- etag, err := etag(f)
+ file.Etag, err = etag(file.Encodings["identity"])
if err != nil {
- return nil, fault.Wrap(err, fmsg.With("could not calculate etag"))
- }
-
- file := &storage.File{
- Path: path,
- FSPath: filename,
- LastModified: stat.ModTime(),
- Etag: etag,
- Encodings: map[string]*os.File{
- "identity": f,
- },
+ return nil, err
}
for enc, suffix := range encodings {