refreshFromSource requests the original FS for the object in case it comes from a cached entry
(ctx context.Context, force bool)
| 167 | |
| 168 | // refreshFromSource requests the original FS for the object in case it comes from a cached entry |
| 169 | func (o *Object) refreshFromSource(ctx context.Context, force bool) error { |
| 170 | o.refreshMutex.Lock() |
| 171 | defer o.refreshMutex.Unlock() |
| 172 | var err error |
| 173 | var liveObject fs.Object |
| 174 | |
| 175 | if o.Object != nil && !force { |
| 176 | return nil |
| 177 | } |
| 178 | if o.isTempFile() { |
| 179 | liveObject, err = o.ParentFs.NewObject(ctx, o.Remote()) |
| 180 | if err != nil { |
| 181 | err = fmt.Errorf("in parent fs %v: %w", o.ParentFs, err) |
| 182 | } |
| 183 | } else { |
| 184 | liveObject, err = o.CacheFs.Fs.NewObject(ctx, o.Remote()) |
| 185 | if err != nil { |
| 186 | err = fmt.Errorf("in cache fs %v: %w", o.CacheFs.Fs, err) |
| 187 | } |
| 188 | } |
| 189 | if err != nil { |
| 190 | fs.Errorf(o, "error refreshing object in : %v", err) |
| 191 | return err |
| 192 | } |
| 193 | o.updateData(ctx, liveObject) |
| 194 | o.persist() |
| 195 | |
| 196 | return nil |
| 197 | } |
| 198 | |
| 199 | // SetModTime sets the ModTime of this object |
| 200 | func (o *Object) SetModTime(ctx context.Context, t time.Time) error { |
no test coverage detected