public async Task <BlobCreateResultModel> FindByNameAsync(string containerName, string blobName, CancellationToken cancellationToken = default)
        {
            var message = "";

            try
            {
                var blobContainerClient = GetBlobContainerClient(containerName);

                EnsureContainerCreated(blobContainerClient);

                var blobClient = blobContainerClient.GetBlobClient(blobName);

                var exists = await blobClient.ExistsAsync(cancellationToken);

                if (exists)
                {
                    var result = new BlobCreateResultModel
                    {
                        BlobName      = blobClient.Name,
                        Uri           = blobClient.Uri.ToString(),
                        ContainerName = blobClient.BlobContainerName,
                    };

                    return(result);
                }
                else
                {
                    message = "Could not find a file.";
                    var details = new ErrorModel <int>
                    {
                        Code    = (int)HttpStatusCode.NotFound,
                        Message = message,
                    };
                    throw new ApiHttpStatusException <ErrorModel <int> >(HttpStatusCode.NotFound, message, details);
                }
            }
            catch (Exception ex)
            {
                logger.LogError(ex.Message);

                throw;
            }
        }
예제 #2
0
 public static string GetExtension(this BlobCreateResultModel source)
 {
     return($".{source.BlobName.Split('.').Last()}");
 }
예제 #3
0
        public static string GetNameWithoutExtension(this BlobCreateResultModel source)
        {
            var tokens = source.BlobName.Split('.');

            return(string.Join('.', tokens.Take(tokens.Length - 1)));
        }