@@ -627,61 +627,61 @@ private static CloudBlobContainer CreateContainer(CloudBlobClient cloudBlobClien
627627 }
628628
629629 CloudBlobContainer container = cloudBlobClient . GetContainerReference ( containerName . ToLowerInvariant ( ) ) ;
630- if ( ! container . Exists ( ) )
631- {
632- if ( cloudBlobClient . Credentials . IsSAS )
633- {
634- // Shared access signatures (SAS) have some limitations compared to shared access keys
635- // read more on: https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1
636- string [ ] sasTokenProperties = cloudBlobClient . Credentials . SASToken . Split ( "&" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
637- bool isAccountSas = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) != null ;
638630
639- string allowedServices = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) ;
640- if ( allowedServices != null )
641- {
642- allowedServices = allowedServices . Split ( '=' ) [ 1 ] . ToLower ( ) ;
643- }
644- else
645- {
646- allowedServices = string . Empty ;
647- }
648631
649- string resourceTypes = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "srt=" ) ) . FirstOrDefault ( ) ;
650- if ( resourceTypes != null )
651- {
652- resourceTypes = resourceTypes . Split ( '=' ) [ 1 ] . ToLower ( ) ;
653- }
654- else
655- {
656- resourceTypes = string . Empty ;
657- }
632+ if ( cloudBlobClient . Credentials . IsSAS )
633+ {
634+ // Shared access signatures (SAS) have some limitations compared to shared access keys
635+ // read more on: https://docs.microsoft.com/en-us/azure/storage/common/storage-dotnet-shared-access-signature-part-1
636+ string [ ] sasTokenProperties = cloudBlobClient . Credentials . SASToken . Split ( "&" . ToCharArray ( ) , StringSplitOptions . RemoveEmptyEntries ) ;
637+ bool isAccountSas = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss=" ) ) . FirstOrDefault ( ) != null ;
658638
659- string permissions = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "sp =" ) ) . FirstOrDefault ( ) ;
660- if ( permissions != null )
661- {
662- permissions = permissions . Split ( '=' ) [ 1 ] . ToLower ( ) ;
663- }
664- else
665- {
666- permissions = string . Empty ;
667- }
639+ string allowedServices = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "ss =" ) ) . FirstOrDefault ( ) ;
640+ if ( allowedServices != null )
641+ {
642+ allowedServices = allowedServices . Split ( '=' ) [ 1 ] . ToLower ( ) ;
643+ }
644+ else
645+ {
646+ allowedServices = string . Empty ;
647+ }
668648
669- bool canCreateContainer = allowedServices . Contains ( 'b' ) && resourceTypes . Contains ( 'c' ) && permissions . Contains ( 'c' ) ;
670- if ( canCreateContainer )
671- {
672- container . CreateIfNotExists ( ) ;
649+ string resourceTypes = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "srt=" ) ) . FirstOrDefault ( ) ;
650+ if ( resourceTypes != null )
651+ {
652+ resourceTypes = resourceTypes . Split ( '=' ) [ 1 ] . ToLower ( ) ;
653+ }
654+ else
655+ {
656+ resourceTypes = string . Empty ;
657+ }
673658
674- // cannot set permissions with sas access
675- }
659+ string permissions = sasTokenProperties . Where ( k => k . ToLowerInvariant ( ) . StartsWith ( "sp=" ) ) . FirstOrDefault ( ) ;
660+ if ( permissions != null )
661+ {
662+ permissions = permissions . Split ( '=' ) [ 1 ] . ToLower ( ) ;
676663 }
677664 else
665+ {
666+ permissions = string . Empty ;
667+ }
668+
669+ bool canCreateContainer = allowedServices . Contains ( 'b' ) && resourceTypes . Contains ( 'c' ) && permissions . Contains ( 'c' ) ;
670+ if ( canCreateContainer )
678671 {
679672 container . CreateIfNotExists ( ) ;
680- BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
681- newPermissions . PublicAccess = accessType ;
682- container . SetPermissions ( newPermissions ) ;
673+
674+ // cannot set permissions with sas access
683675 }
684676 }
677+ else if ( ! container . Exists ( ) )
678+ {
679+ container . CreateIfNotExists ( ) ;
680+ BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
681+ newPermissions . PublicAccess = accessType ;
682+ container . SetPermissions ( newPermissions ) ;
683+ }
684+
685685
686686 return container ;
687687 }
0 commit comments