@@ -615,61 +615,61 @@ private static CloudBlobContainer CreateContainer(CloudBlobClient cloudBlobClien
615
615
}
616
616
617
617
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 ;
626
618
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
- }
636
619
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 ;
646
626
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
+ }
656
636
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
+ }
661
646
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 ( ) ;
664
651
}
665
652
else
653
+ {
654
+ permissions = string . Empty ;
655
+ }
656
+
657
+ bool canCreateContainer = allowedServices . Contains ( 'b' ) && resourceTypes . Contains ( 'c' ) && permissions . Contains ( 'c' ) ;
658
+ if ( canCreateContainer )
666
659
{
667
660
container . CreateIfNotExists ( ) ;
668
- BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
669
- newPermissions . PublicAccess = accessType ;
670
- container . SetPermissions ( newPermissions ) ;
661
+
662
+ // cannot set permissions with sas access
671
663
}
672
664
}
665
+ else if ( ! container . Exists ( ) )
666
+ {
667
+ container . CreateIfNotExists ( ) ;
668
+ BlobContainerPermissions newPermissions = container . GetPermissions ( ) ;
669
+ newPermissions . PublicAccess = accessType ;
670
+ container . SetPermissions ( newPermissions ) ;
671
+ }
672
+
673
673
674
674
return container ;
675
675
}
0 commit comments