@@ -615,61 +615,61 @@ private static CloudBlobContainer CreateContainer(CloudBlobClient cloudBlobClien
615615 }
616616
617617 CloudBlobContainer container = cloudBlobClient . GetContainerReference ( containerName . ToLowerInvariant ( ) ) ;
618- if ( ! container . Exists ( ) )
619- {
620- if ( cloudBlobClient . Credentials . IsSAS )
621- {
622- // Shared access signatures (SAS) have some limitations compared to shared access keys
623- // read more on: https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1
624- string [ ] sasTokenProperties = cloudBlobClient . Credentials . SASToken . Split ( "&" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
625- bool isAccountSas = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) != null ;
626618
627- string allowedServices = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) ;
628- if ( allowedServices != null )
629- {
630- allowedServices = allowedServices . Split ( '=' ) [ 1 ] . ToLower ( ) ;
631- }
632- else
633- {
634- allowedServices = string . Empty ;
635- }
636619
637- string resourceTypes = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "srt=" ) ) . FirstOrDefault ( ) ;
638- if ( resourceTypes != null )
639- {
640- resourceTypes = resourceTypes . Split ( '=' ) [ 1 ] . ToLower ( ) ;
641- }
642- else
643- {
644- resourceTypes = string . Empty ;
645- }
620+ if ( cloudBlobClient . Credentials . IsSAS )
621+ {
622+ // Shared access signatures (SAS) have some limitations compared to shared access keys
623+ // read more on: https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1
624+ string [ ] sasTokenProperties = cloudBlobClient . Credentials . SASToken . Split ( "&" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
625+ bool isAccountSas = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) != null ;
646626
647- string permissions = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "sp =" ) ) . FirstOrDefault ( ) ;
648- if ( permissions != null )
649- {
650- permissions = permissions . Split ( '=' ) [ 1 ] . ToLower ( ) ;
651- }
652- else
653- {
654- permissions = string . Empty ;
655- }
627+ string allowedServices = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss =" ) ) . FirstOrDefault ( ) ;
628+ if ( allowedServices != null )
629+ {
630+ allowedServices = allowedServices . Split ( '=' ) [ 1 ] . ToLower ( ) ;
631+ }
632+ else
633+ {
634+ allowedServices = string . Empty ;
635+ }
656636
657- bool canCreateContainer = allowedServices . Contains ( 'b' ) && resourceTypes . Contains ( 'c' ) && permissions . Contains ( 'c' ) ;
658- if ( canCreateContainer )
659- {
660- container . CreateIfNotExists ( ) ;
637+ string resourceTypes = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "srt=" ) ) . FirstOrDefault ( ) ;
638+ if ( resourceTypes != null )
639+ {
640+ resourceTypes = resourceTypes . Split ( '=' ) [ 1 ] . ToLower ( ) ;
641+ }
642+ else
643+ {
644+ resourceTypes = string . Empty ;
645+ }
661646
662- // cannot set permissions with sas access
663- }
647+ string permissions = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "sp=" ) ) . FirstOrDefault ( ) ;
648+ if ( permissions != null )
649+ {
650+ permissions = permissions . Split ( '=' ) [ 1 ] . ToLower ( ) ;
664651 }
665652 else
653+ {
654+ permissions = string . Empty ;
655+ }
656+
657+ bool canCreateContainer = allowedServices . Contains ( 'b' ) && resourceTypes . Contains ( 'c' ) && permissions . Contains ( 'c' ) ;
658+ if ( canCreateContainer )
666659 {
667660 container . CreateIfNotExists ( ) ;
668- BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
669- newPermissions . PublicAccess = accessType ;
670- container . SetPermissions ( newPermissions ) ;
661+
662+ // cannot set permissions with sas access
671663 }
672664 }
665+ else if ( ! container . Exists ( ) )
666+ {
667+ container . CreateIfNotExists ( ) ;
668+ BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
669+ newPermissions . PublicAccess = accessType ;
670+ container . SetPermissions ( newPermissions ) ;
671+ }
672+
673673
674674 return container ;
675675 }
0 commit comments