public async Task <FileUploadResult> UploadAsync(Stream fileStream, PhotoForStreamUploadMetadataDto fileMetadata, string folder = null)
        {
            var fileId = CreateFileName(fileMetadata);

            var blockBlob = await GetOrCreateBlockBlob(fileId, folder);

            await blockBlob.UploadFromStreamAsync(fileStream);

            return(FileUploadResult.Create(fileId, blockBlob.Uri));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UploadStreamFile()
        {
            if (!Helpers.MultipartRequestHelper.IsMultipartContentType(Request.ContentType))
            {
                return(BadRequest($"Expected a multipart request, but got {Request.ContentType}"));
            }

            var file = await GetFileStream(HttpContext.Request.Body);

            if (!_fileFormatInspectorProvider.ValidateFileFormat(file.stream))
            {
                return(BadRequest("Given file format is not supported"));
            }

            var fileMetadata      = new PhotoForStreamUploadMetadataDto();
            var bindingSuccessful = await TryUpdateModelAsync(fileMetadata, prefix : string.Empty,
                                                              valueProvider : file.formValueProvider);

            if (!bindingSuccessful && !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user             = GetUser();
            var fileUploadResult = await _filesStorageProvider.UploadAsync(file.stream, fileMetadata, user.PendingUploadPhotosFolderName);

            var photoForUser = new PhotoForUserDto
            {
                FileId = fileUploadResult.FileId,
                UserId = user.Id,
                Url    = fileUploadResult.Uri
            };
            await _photoService.AddPhotoForUser(photoForUser);

            return(NoContent());
        }
 public string CreateFileName(PhotoForStreamUploadMetadataDto fileMetadata)
 {
     return(string.Format(_configuration.GetSection("AzureCloud:FileNameFormat").Value,
                          fileMetadata.FileId,
                          fileMetadata.FileExtension));
 }