@@ -124,14 +124,20 @@ protected override async Task<Result> CreateContainerInternalAsync(CancellationT
124124 {
125125 try
126126 {
127- _ = await StorageClient . CreateIfNotExistsAsync ( PublicAccessType . BlobContainer , cancellationToken : cancellationToken ) ;
128- await StorageClient . SetAccessPolicyAsync ( StorageOptions . PublicAccessType , cancellationToken : cancellationToken ) ;
127+ _ = await StorageClient . CreateIfNotExistsAsync ( PublicAccessType . BlobContainer , cancellationToken : cancellationToken ) ;
128+ var policy = await StorageClient . GetAccessPolicyAsync ( cancellationToken : cancellationToken ) ;
129+ if ( policy . Value . BlobPublicAccess != StorageOptions . PublicAccessType )
130+ {
131+ await StorageClient . SetAccessPolicyAsync ( StorageOptions . PublicAccessType , cancellationToken : cancellationToken ) ;
132+ }
133+
129134 IsContainerCreated = true ;
130135
131136 return Result . Succeed ( ) ;
132137 }
133138 catch ( Exception ex )
134139 {
140+ IsContainerCreated = false ;
135141 _logger ? . LogError ( ex . Message , ex ) ;
136142 return Result . Fail ( ex ) ;
137143 }
@@ -146,7 +152,7 @@ protected override async Task<Result> DeleteDirectoryInternalAsync(string direct
146152 foreach ( var blob in blobs )
147153 {
148154 var blobClient = StorageClient . GetBlobClient ( blob . Name ) ;
149- await blobClient . DeleteAsync ( DeleteSnapshotsOption . None , null , cancellationToken ) ;
155+ await blobClient . DeleteIfExistsAsync ( DeleteSnapshotsOption . None , null , cancellationToken ) ;
150156 }
151157
152158 return Result . Succeed ( ) ;
@@ -227,8 +233,8 @@ protected override async Task<Result<bool>> DeleteInternalAsync(DeleteOptions op
227233 {
228234 await EnsureContainerExist ( ) ;
229235 var blobClient = StorageClient . GetBlobClient ( options . FullPath ) ;
230- var response = await blobClient . DeleteAsync ( DeleteSnapshotsOption . None , null , cancellationToken ) ;
231- return Result < bool > . Succeed ( ! response . IsError ) ;
236+ var response = await blobClient . DeleteIfExistsAsync ( DeleteSnapshotsOption . None , null , cancellationToken ) ;
237+ return Result < bool > . Succeed ( response ) ;
232238 }
233239 catch ( RequestFailedException ex )
234240 when ( ex . Status is 404 )
0 commit comments