Temporary repo to track my changes on LTS functions app porting
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
using Azure.Storage.Blobs; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.Functions.Worker; using Microsoft.Extensions.Logging;
namespace CDP { public class CDPBlobStorage { private readonly ILogger<CDPBlobStorage> _logger;
public CDPBlobStorage(ILogger<CDPBlobStorage> logger) { _logger = logger; }
static internal async Task<IActionResult> UploadBlobInternal(FileUploadDto dto, ILogger _logger) { string Connection = Constants.StorageConnString;
try { byte[] fileBytes = Convert.FromBase64String(dto.FileContent); var blobSvc = new BlobServiceClient(Connection); var blobClient = blobSvc.GetBlobContainerClient(dto.AppKey.ToLower());
if (!blobClient.Exists()) { await blobClient.CreateAsync(); }
var blob = blobClient.GetBlobClient(string.Format("{0}-{1}", dto.FileId, dto.VersionId)); Stream fs = new MemoryStream(fileBytes); var res = await blob.UploadAsync(fs); return new OkObjectResult(res); } catch (Exception ex) { _logger.LogError(ex.ToString()); return new BadRequestObjectResult(ex); } } }
public class FileUploadDto { public required string AppKey { get; set; } public required string FileId { get; set; } public required string FileContent { get; set; }
public required string VersionId { get; set; } } }
|