aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Providers/ImageSaver.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Providers/ImageSaver.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Providers/ImageSaver.cs12
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);
}