mirror of https://github.com/Xhofe/alist
				
				
				
			fix: cache is modified while sorting (close #2340)
							parent
							
								
									3fbdf6f022
								
							
						
					
					
						commit
						4dcaa24758
					
				|  | @ -24,7 +24,7 @@ func list(ctx context.Context, path string, refresh ...bool) ([]model.Obj, error | ||||||
| 			return nil, errors.WithMessage(err, "failed get storage") | 			return nil, errors.WithMessage(err, "failed get storage") | ||||||
| 		} | 		} | ||||||
| 	} else { | 	} else { | ||||||
| 		objs, err = op.List(ctx, storage, actualPath, model.ListArgs{ | 		_objs, err := op.List(ctx, storage, actualPath, model.ListArgs{ | ||||||
| 			ReqPath: path, | 			ReqPath: path, | ||||||
| 		}, refresh...) | 		}, refresh...) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
|  | @ -33,6 +33,8 @@ func list(ctx context.Context, path string, refresh ...bool) ([]model.Obj, error | ||||||
| 				return nil, errors.WithMessage(err, "failed get objs") | 				return nil, errors.WithMessage(err, "failed get objs") | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 		objs = make([]model.Obj, len(_objs)) | ||||||
|  | 		copy(objs, _objs) | ||||||
| 	} | 	} | ||||||
| 	if objs == nil { | 	if objs == nil { | ||||||
| 		objs = virtualFiles | 		objs = virtualFiles | ||||||
|  |  | ||||||
|  | @ -60,8 +60,10 @@ func List(ctx context.Context, storage driver.Driver, path string, args model.Li | ||||||
| 		} | 		} | ||||||
| 		if !storage.Config().NoCache { | 		if !storage.Config().NoCache { | ||||||
| 			if len(files) > 0 { | 			if len(files) > 0 { | ||||||
|  | 				log.Debugf("set cache: %s => %+v", key, files) | ||||||
| 				listCache.Set(key, files, cache.WithEx[[]model.Obj](time.Minute*time.Duration(storage.GetStorage().CacheExpiration))) | 				listCache.Set(key, files, cache.WithEx[[]model.Obj](time.Minute*time.Duration(storage.GetStorage().CacheExpiration))) | ||||||
| 			} else { | 			} else { | ||||||
|  | 				log.Debugf("del cache: %s", key) | ||||||
| 				listCache.Del(key) | 				listCache.Del(key) | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Noah Hsu
						Noah Hsu