예제 #1
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        public StoragePathModel PrepareStoragePath(OutputImageFormat format)
        {
            var uploadKeyGuid = Guid.NewGuid();
            var uploadKey     = uploadKeyGuid.ToString("N");

            var basePath = this.appSettings.Value.Directory.WorkingDirectory;

            var segmentsPath = Path.Combine(
                uploadKey[0].ToString(),
                uploadKey[1].ToString(),
                uploadKey[2].ToString());

            var baseDirectoryPath = Path.Combine(basePath, segmentsPath);
            var finalPath         = $"{Path.Combine(baseDirectoryPath, uploadKey)}.{format.GetImageFormat()}";

            var urlPath = $"/{segmentsPath}/{uploadKey}.{format.GetImageFormat()}";

            // If storage directory doesn't exists, create it
            if (!Directory.Exists(baseDirectoryPath))
            {
                Directory.CreateDirectory(baseDirectoryPath);
            }

            return(new StoragePathModel
            {
                Key = uploadKeyGuid,
                FilePath = finalPath,
                UrlPath = urlPath
            });
        }
예제 #2
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        public ImageThumbPathsModel PrepareThumbFilePath(StoragePathModel originalPath, OutputImageFormat format, int width, int height)
        {
            // Prepare a disk path
            var diskPath = $"{Path.ChangeExtension(originalPath.FilePath, null)}_thumb_{width}x{height}.{format.GetImageFormat()}";

            // Prepare an URL path
            var url = this.NormalizeWebPath(Path.ChangeExtension(originalPath.UrlPath, null)) +
                      $"_thumb_{width}x{height}.{format.GetImageFormat()}";

            return(new ImageThumbPathsModel
            {
                DiskPath = diskPath,
                Url = url
            });
        }