cache: plex integration, refactor chunk storage and worker retries (#1899)

This commit is contained in:
remusb 2017-12-09 23:54:26 +02:00 committed by GitHub
parent b05e472d2e
commit b48b537325
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 781 additions and 652 deletions

14
cache/object.go vendored
View file

@ -1,4 +1,4 @@
// +build !plan9
// +build !plan9,go1.7
package cache
@ -205,16 +205,18 @@ func (o *Object) Open(options ...fs.OpenOption) (io.ReadCloser, error) {
if err := o.refreshFromSource(); err != nil {
return nil, err
}
o.CacheFs.CheckIfWarmupNeeded(o.Remote())
var err error
cacheReader := NewObjectHandle(o)
for _, option := range options {
switch x := option.(type) {
case *fs.SeekOption:
_, err := cacheReader.Seek(x.Offset, os.SEEK_SET)
if err != nil {
return cacheReader, err
}
_, err = cacheReader.Seek(x.Offset, os.SEEK_SET)
case *fs.RangeOption:
_, err = cacheReader.Seek(x.Start, os.SEEK_SET)
}
if err != nil {
return cacheReader, err
}
}