Ejemplo n.º 1
0
        private static async Task <string> HandleCreationOfConcatFiles(ContextAdapter context, Models.Concatenation.UploadConcat uploadConcat,
                                                                       ITusConcatenationStore tusConcatenationStore, long uploadLength, string metadata,
                                                                       CancellationToken cancellationToken)
        {
            string fileId;

            if (uploadConcat.Type is FileConcatPartial)
            {
                fileId = await tusConcatenationStore
                         .CreatePartialFileAsync(uploadLength, metadata, cancellationToken);
            }
            else
            {
                var finalConcat = (FileConcatFinal)uploadConcat.Type;
                fileId = await tusConcatenationStore.CreateFinalFileAsync(finalConcat.Files, metadata, cancellationToken);

                // Run callback that the final file is completed.
                if (context.Configuration.OnUploadCompleteAsync != null)
                {
                    await context.Configuration.OnUploadCompleteAsync(fileId, context.Configuration.Store, cancellationToken);
                }
            }

            return(fileId);
        }
Ejemplo n.º 2
0
        private async Task <string> HandleCreationOfConcatFiles(long uploadLength, string metadataString, Dictionary <string, Metadata> metadata)
        {
            string createdFileId;

            if (UploadConcat.Type is FileConcatFinal finalConcat)
            {
                createdFileId = await _concatenationStore.CreateFinalFileAsync(finalConcat.Files, metadataString, CancellationToken);

                await EventHelper.Notify <CreateCompleteContext>(Context, ctx =>
                {
                    ctx.FileId            = createdFileId;
                    ctx.Metadata          = metadata;
                    ctx.UploadLength      = uploadLength;
                    ctx.FileConcatenation = UploadConcat.Type;
                });

                await EventHelper.NotifyFileComplete(Context, ctx => ctx.FileId = createdFileId);
            }
            else
            {
                createdFileId = await _concatenationStore.CreatePartialFileAsync(uploadLength, metadataString, CancellationToken);

                await EventHelper.Notify <CreateCompleteContext>(Context, ctx =>
                {
                    ctx.FileId            = createdFileId;
                    ctx.Metadata          = metadata;
                    ctx.UploadLength      = uploadLength;
                    ctx.FileConcatenation = UploadConcat.Type;
                });
            }

            return(createdFileId);
        }
Ejemplo n.º 3
0
        private static async Task <string> HandleCreationOfConcatFiles(
            ContextAdapter context,
            UploadConcat uploadConcat,
            ITusConcatenationStore tusConcatenationStore,
            long uploadLength,
            string metadata,
            CancellationToken cancellationToken)
        {
            string fileId;

            if (uploadConcat.Type is FileConcatPartial)
            {
                fileId = await tusConcatenationStore
                         .CreatePartialFileAsync(uploadLength, metadata, cancellationToken);

                await HandleOnCreateComplete(context, fileId, true, uploadConcat, metadata, uploadLength);
            }
            else
            {
                var finalConcat = (FileConcatFinal)uploadConcat.Type;
                fileId = await tusConcatenationStore.CreateFinalFileAsync(finalConcat.Files, metadata,
                                                                          cancellationToken);

                await HandleOnCreateComplete(context, fileId, true, uploadConcat, metadata, uploadLength);

                // Run callback that the final file is completed.
                await HandleOnFileComplete(context, cancellationToken, fileId);
            }

            return(fileId);
        }