public async Task CreateTranscodeMessages(FileContentsUploadCompleteEvent fileUploadEvent, Func <string, object, Task> enqueue, bool audio = false) { await enqueue("Transcode", new TranscodeMessage(fileUploadEvent.FileIdentifier) { TranscodeConfiguration = audio ? "AudioTranscode" : "VideoTranscode" }); }
public async Task <FileModel> UploadCompleteAsync( UploadContextModel uploadContext, CancellationToken cancellationToken = default(CancellationToken) ) { var uploadStateToken = UploadTokenModel.Parse(uploadContext.UploadToken); var upload = await UploadStore.GetOneAsync(uploadStateToken.Identifier, new[] { new PopulationDirective { Name = nameof(UploadModel.Chunks) } }); var chunkStates = upload.Chunks?.Rows .OrderBy(c => c.ChunkIndex) .Select(c => new ChunkedStatusModel { ChunkIndex = c.ChunkIndex, UploadChunkKey = c.Identifier.UploadChunkKey, State = c.State, Success = true }) .ToArray(); var fileLocator = await FileStore.FileLocatorGetAsync(uploadStateToken.Identifier); var returnData = await BackendClient.CompleteChunkedUploadAsync( await LoadConfigurationAsync(uploadStateToken.Identifier as OrganizationIdentifier), uploadStateToken.Identifier.UploadKey, fileLocator, chunkStates ); var fileModel = await FileStore.GetOneAsync(uploadStateToken.Identifier); await FileStore.UpdateAsync(fileModel); if (returnData != null) { await FileStore.HashSetAsync( fileModel.Identifier, GetHash(returnData, "md5"), GetHash(returnData, "sha1"), GetHash(returnData, "sha256") ); } await FileStore.UploadingStatusSetAsync(fileModel.Identifier, false); await UploadStore.Cleanup(upload.Identifier); var evt = new FileContentsUploadCompleteEvent { FileIdentifier = fileModel.Identifier }; evt.Populate(fileModel); await EventSender.SendAsync(evt); return(fileModel); }
public Task CreateExifMessage(FileContentsUploadCompleteEvent fileUploadEvent, Func <string, object, Task> enqueue) => enqueue("ExifTool", new FileBasedMessage(fileUploadEvent.FileIdentifier));
public Task CreateToPDFMessage(FileContentsUploadCompleteEvent fileUploadEvent, Func <string, object, Task> enqueue) => enqueue("ToPDF", new ConvertToPDFMessage(fileUploadEvent.FileIdentifier));
public Task CreateArchiveMessages(FileContentsUploadCompleteEvent fileUploadEvent, Func <string, object, Task> enqueue) => enqueue("Archive", new ArchiveMessage(fileUploadEvent.FileIdentifier));
public Task CreateTextExtractMessage(FileContentsUploadCompleteEvent fileUploadEvent, Func <string, object, Task> enqueue) => enqueue("TextExtract", new TextExtractMessage(fileUploadEvent.FileIdentifier));
// Here we're going to fan out our file upload event to any image generation messages that need to happen public Task CreateImageGenMessages(FileContentsUploadCompleteEvent fileUploadEvent, FolderModel folder, Func <string, object, Task> enqueue) => enqueue("ImageGen", new ImageGenMessage { Identifier = fileUploadEvent.FileIdentifier });