public static MediaFileBaseModel NewMediaFileFromMediaType(string mediaType, string fileName) { MediaFileBaseModel mediafile = null; switch (mediaType) { case "image": case "Images": mediafile = new ImageFileModel(); break; case "Original": case "audio": case "video": mediafile = new AuViFileModel(); break; case "Final": mediafile = new FinalAvFileModel(); break; default: mediafile = new OtherFileModel(); break; } mediafile.fileName = fileName; mediafile.path = $"{mediafile.fileType}/{mediafile.fileName}"; return(mediafile); }
public DirectUploadModel getNewImageId([FromQuery] string fileType, [FromQuery] string fileName, [FromQuery] string folderpath, [FromQuery] bool createSignedURL = false) { if (string.IsNullOrWhiteSpace(fileType)) { throw new ArgumentNullException("fileType"); } if (string.IsNullOrWhiteSpace(fileName)) { throw new ArgumentNullException("fileName"); } if (string.IsNullOrWhiteSpace(folderpath)) { throw new ArgumentNullException("folderpath"); } fileName = _filenameRegex.Replace(fileName, "_"); var orgFolderPath = folderpath = _pathRegex.Replace(folderpath, "_"); if (!folderpath.StartsWith(_mediaLocations.articlesRoot)) { folderpath = $"{_mediaLocations.articlesRoot}/{folderpath}"; } /* * fileName = fileName.Replace(' ', '_'); * fileName = string.Join("_", fileName.Split(Path.GetInvalidFileNameChars())); * * folderpath = folderpath.Replace(' ', '_'); * folderpath = string.Join("_", folderpath.Split(Path.GetInvalidPathChars())); */ var mediafile2 = MediaFileBaseModel.mediaObjectFromMimeType(fileType, fileName); var ret = new DirectUploadModel { mediaFile = mediafile2, config = _storage.uploadConfig, rootFolder = folderpath }; var storageKey = StorageService.getStorageKey($"{folderpath}/{mediafile2.path}"); _logger.LogDebug($"newPageidForUploadAsync: new page {storageKey.bucket}:{storageKey.key}"); ret.config.bucket = storageKey.bucket; if (createSignedURL) { if (!string.IsNullOrWhiteSpace(_storage.uploadConfig.customEndpoint)) { //we are using minio.. set up var origin = this.originFromURL("/api/media"); ret.keyForDirectUpload = _storage.createPresignedUrl(storageKey.key, true, origin); } else { ret.keyForDirectUpload = _storage.createPresignedUrl(storageKey.key, true); } } else { ret.keyForDirectUpload = _storage.keyForDirectUpload(storageKey.key); } return(ret); }