diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers/ImageSaver.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Providers/ImageSaver.cs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs index 3bdef9226..7b5c0df34 100644 --- a/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs +++ b/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs @@ -35,16 +35,18 @@ namespace MediaBrowser.Server.Implementations.Providers /// The _directory watchers /// </summary> private readonly IDirectoryWatchers _directoryWatchers; + private readonly IFileSystem _fileSystem; /// <summary> /// Initializes a new instance of the <see cref="ImageSaver"/> class. /// </summary> /// <param name="config">The config.</param> /// <param name="directoryWatchers">The directory watchers.</param> - public ImageSaver(IServerConfigurationManager config, IDirectoryWatchers directoryWatchers) + public ImageSaver(IServerConfigurationManager config, IDirectoryWatchers directoryWatchers, IFileSystem fileSystem) { _config = config; _directoryWatchers = directoryWatchers; + _fileSystem = fileSystem; _remoteImageCache = new FileSystemRepository(config.ApplicationPaths.DownloadedImagesDataPath); } @@ -67,11 +69,11 @@ namespace MediaBrowser.Server.Implementations.Providers throw new ArgumentNullException("mimeType"); } - var saveLocally = _config.Configuration.SaveLocalMeta || item is IItemByName || item is User; + var saveLocally = _config.Configuration.SaveLocalMeta && item.Parent != null && !(item is Audio); - if (item is Audio || item.Parent == null) + if (item is IItemByName || item is User) { - saveLocally = false; + saveLocally = true; } if (type != ImageType.Primary && item is Episode) @@ -176,7 +178,7 @@ namespace MediaBrowser.Server.Implementations.Providers } } - using (var fs = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous)) + using (var fs = _fileSystem.GetFileStream(path, FileMode.Create, FileAccess.Write, FileShare.Read, true)) { await source.CopyToAsync(fs, StreamDefaults.DefaultCopyToBufferSize, cancellationToken).ConfigureAwait(false); } |
