public async Task Should_Upload_File_Success()
        {
            // Arrange
            var bytes = new byte[] { 0x01, 0x02 };

            // Act
            await _blobContainer.SaveAsync("TestFile1", bytes);

            // Assert
            var fileStream = await _blobContainer.GetAsync("TestFile1");

            fileStream.Length.ShouldBe(2);
        }
        public async Task <FileUploadResultDto> CreateAsync(FileUploadInputDto input)
        {
            if (input.Bytes.IsNullOrEmpty())
            {
                ThrowValidationException("Bytes of file can not be null or empty!", "Bytes");
            }

            if (input.Bytes.Length > BloggingFileConstant.MaxFileSize)
            {
                throw new UserFriendlyException(
                          $"File exceeds the maximum upload size ({BloggingFileConstant.MaxFileSizeAsMegabytes} MB)!");
            }

            var uniqueFileName = Path.GetFileNameWithoutExtension(input.Name)
                                 + "_"
                                 + GuidGenerator.Create().ToString("N")
                                 + Path.GetExtension(input.Name);

            await _blobContainer.SaveAsync(uniqueFileName, input.Bytes);

            return(new FileUploadResultDto
            {
                Name = uniqueFileName,
                WebUrl = "/api/blogging/files/www/" + uniqueFileName
            });
        }
Example #3
0
        public virtual async Task <string> SaveAsync(string fileName, byte[] byteArray, bool overrideExisting = false)
        {
            var    extension       = Path.GetExtension(fileName);
            string storageFileName = $"{Path.GetFileNameWithoutExtension(fileName)}_{Guid.NewGuid()}{extension}";
            await _productPictureContainer.SaveAsync(storageFileName, byteArray, overrideExisting);

            return(storageFileName);
        }
Example #4
0
        public virtual async Task SetCoverImageAsync(Guid id, RemoteStreamContent streamContent)
        {
            await Repository.GetAsync(id);

            using (var stream = streamContent.GetStream())
            {
                await BlobContainer.SaveAsync(id.ToString(), stream, overrideExisting : true);
            }
        }
        private async Task SeedMediaAsync()
        {
            using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(_cmsKitTestData.Media_1_Content)))
            {
                var media = new MediaDescriptor(_cmsKitTestData.Media_1_Id, _cmsKitTestData.Media_1_Name, _cmsKitTestData.Media_1_ContentType, stream.Length);

                await _mediaDescriptorRepository.InsertAsync(media);

                await _mediaBlobContainer.SaveAsync(media.Id.ToString(), stream);
            }
        }
Example #6
0
        public virtual async Task <MediaDescriptorDto> CreateAsync(CreateMediaInputStream inputStream)
        {
            var newId     = GuidGenerator.Create();
            var stream    = inputStream.GetStream();
            var newEntity = new MediaDescriptor(newId, inputStream.Name, inputStream.ContentType, stream.Length, CurrentTenant.Id);

            await MediaContainer.SaveAsync(newId.ToString(), stream);

            await MediaDescriptorRepository.InsertAsync(newEntity);

            return(ObjectMapper.Map <MediaDescriptor, MediaDescriptorDto>(newEntity));
        }
Example #7
0
 public Task SaveAsync(
     string name,
     Stream stream,
     bool overrideExisting = false,
     CancellationToken cancellationToken = default)
 {
     return(_container.SaveAsync(
                name,
                stream,
                overrideExisting,
                cancellationToken
                ));
 }
Example #8
0
        /// <summary>
        /// 保存图片
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        public JsonResult SaveMyBlobAsync(IFormFile file)
        {
            // 将 file类型转为 byte[]
            BinaryReader r = new BinaryReader(file.OpenReadStream());

            //将文件指针设置到文件
            r.BaseStream.Seek(0, SeekOrigin.Begin);
            byte[] bytes = r.ReadBytes((int)r.BaseStream.Length);

            var blobName = Guid.NewGuid().ToString() + file.FileName;

            _myBlobContainer.SaveAsync(blobName, bytes);
            return(new JsonResult(new { blobName }));
        }
Example #9
0
 public static async Task SaveAsync(
     this IBlobContainer container,
     string name,
     byte[] bytes,
     bool overrideExisting = false,
     CancellationToken cancellationToken = default
     )
 {
     using (var memoryStream = new MemoryStream(bytes))
     {
         await container.SaveAsync(
             name,
             memoryStream,
             overrideExisting,
             cancellationToken
             );
     }
 }
Example #10
0
        public void SpoolBatch(IEnumerable <TData> data)
        {
            Debug.Assert(IsInitialized);
            Debug.Assert(IsStarted);
            Debug.Assert(null != data);

            if (data.Any())
            {
                var pages = data.Partition(_pageSize);
                foreach (var page in pages)
                {
                    var pageNumber = _tracking.LastPageNumber.ToString("d19", CultureInfo.InvariantCulture);
                    _log.InfoFormat("Spooling page {0} of {1}", pageNumber, _spoolId);
                    string pageName = pageNumber + "page";
                    _pageData.SaveAsync(pageName, page, _lifeTime);
                    _tracking.LastPageNumber++;
                }
            }
            else
            {
                _dblog.WarnFormat("Tried to spool an empty batch of data on {0}", _spoolId);
            }
        }
Example #11
0
    public async Task SaveFile(string fileName = "File Name", string fileContent = "File Content")
    {
        await _container.SaveAsync(fileName, fileContent.GetBytes(), true);

        Console.WriteLine($"File: {fileName} is successfully saved");
    }
 public async Task SaveFileAsync(SaveFileInputDto input)
 {
     await _fileContainer.SaveAsync(input.Name, input.Content, true);
 }
Example #13
0
 /// <summary>
 /// 保存图片
 /// </summary>
 /// <param name="bytes"></param>
 /// <returns></returns>
 public async Task SaveProfilePictureAsync(byte[] bytes)
 {
     var blobName = CurrentUser.GetId().ToString();
     await _blobContainer.SaveAsync(blobName, bytes);
 }
Example #14
0
 public async Task SaveBytesAsync(byte[] bytes)
 {
     await _blobContainer.SaveAsync("my-blob-1", bytes);
 }
Example #15
0
 public async Task SaveBytesAsync(string fileName, byte[] bytes)
 {
     await _blobContainer.SaveAsync(fileName, bytes);
 }