Esempio n. 1
0
        /// <summary>
        /// create a url for file upload
        /// </summary>
        /// <param name="fileInfo"></param>
        /// <param name="metadataContainer"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public Task <Uri> Create(FileInfo fileInfo, MetadataCollection metadataContainer = null, TusRequestOption option = default, CancellationToken ct = default)
        {
            metadataContainer ??= new MetadataCollection();
            if (!metadataContainer.ContainsKey(_tusClientOptions.FileNameMetadataName))
            {
                metadataContainer[_tusClientOptions.FileNameMetadataName] = fileInfo.Name;
            }

            return(Create(fileInfo.Length, metadataContainer, option, ct));
        }
Esempio n. 2
0
        /// <summary>
        /// upload blob; will continue from where it left off if a previous upload was already in progress
        /// </summary>
        /// <param name="uploadUrl">blob upload url</param>
        /// <param name="blobStream">blob stream to be uploaded; must allow Length, ReadAsync operations. Seek operation must be available for resumed uploads.</param>
        /// <param name="state"></param>
        /// <param name="option"></param>
        /// <param name="ct">cancellation token to stop the asynchronous action</param>
        /// <returns>Returns true if upload is complete; false otherwise</returns>
        public async Task <bool> Upload(Uri uploadUrl, Stream blobStream, object state, TusRequestOption option = default, CancellationToken ct = default)
        {
            bool uploadResult;

            if (option is not null && option.UploadWithStreaming)
            {
                uploadResult = await UploadWithStreamingAsync(uploadUrl, blobStream, state, option, ct);
            }
Esempio n. 3
0
        /// <summary>
        /// create a url for blob upload
        /// </summary>
        /// <param name="blobLength"></param>
        /// <param name="metadataContainer"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public async Task <Uri> Create(long blobLength, MetadataCollection metadataContainer = null, TusRequestOption option = default, CancellationToken ct = default)
        {
            metadataContainer ??= new MetadataCollection();
            var fileUrl = await _tusExtension.Creation(_tusClientOptions.TusHost, blobLength, metadataContainer.Serialize(), option, ct);

            return(fileUrl);
        }