Skip to content

Commit 04d7e27

Browse files
committed
Fix after test F,Q,DFS
1 parent 70d225c commit 04d7e27

File tree

4 files changed

+24
-111
lines changed

4 files changed

+24
-111
lines changed

src/Storage/Storage/Blob/Cmdlet/CopyAzureStorageBlob.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -457,14 +457,14 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
457457
Track2Models.PageBlobCreateOptions pageBlobCreateOptions = new Track2Models.PageBlobCreateOptions();
458458
pageBlobCreateOptions.HttpHeaders = httpHeaders;
459459
pageBlobCreateOptions.Metadata = srcProperties.Metadata;
460-
pageBlobCreateOptions.Tags = blobTags ?? null;
460+
pageBlobCreateOptions.Tags = (blobTags is null || blobTags.Count == 0) ? null : blobTags;
461461

462462
destPageBlob.Create(srcProperties.ContentLength, pageBlobCreateOptions, this.CmdletCancellationToken);
463463

464464
Track2Models.PageBlobUploadPagesFromUriOptions pageBlobUploadPagesFromUriOptions = new Track2Models.PageBlobUploadPagesFromUriOptions();
465465
if (sourceChannel.StorageContext != null && sourceChannel.StorageContext.Track2OauthToken != null)
466466
{
467-
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(null, this.CmdletCancellationToken).TokenValue;
467+
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(new TokenRequestContext(), this.CmdletCancellationToken).Token;
468468
pageBlobUploadPagesFromUriOptions.SourceAuthentication = new HttpAuthorization("Bearer", oauthToken);
469469
}
470470

@@ -487,7 +487,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
487487
Track2Models.AppendBlobCreateOptions appendBlobCreateOptions = new Track2Models.AppendBlobCreateOptions();
488488
appendBlobCreateOptions.HttpHeaders = httpHeaders;
489489
appendBlobCreateOptions.Metadata = srcProperties.Metadata;
490-
appendBlobCreateOptions.Tags = blobTags ?? null;
490+
appendBlobCreateOptions.Tags = (blobTags is null || blobTags.Count == 0) ? null : blobTags;
491491

492492
destAppendBlob.Create(appendBlobCreateOptions, this.CmdletCancellationToken);
493493

@@ -505,7 +505,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
505505

506506
if (sourceChannel.StorageContext != null && sourceChannel.StorageContext.Track2OauthToken != null)
507507
{
508-
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(null, this.CmdletCancellationToken).TokenValue;
508+
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(new TokenRequestContext(), this.CmdletCancellationToken).Token;
509509
appendBlobAppendBlockFromUriOptions.SourceAuthentication = new HttpAuthorization("Bearer", oauthToken);
510510
}
511511

@@ -532,11 +532,11 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
532532
}
533533
options.SourceConditions = this.BlobRequestConditions;
534534
options.Metadata = srcProperties.Metadata;
535-
options.Tags = blobTags ?? null;
535+
options.Tags = (blobTags is null || blobTags.Count == 0) ? null : blobTags;
536536

537537
if (sourceChannel.StorageContext != null && sourceChannel.StorageContext.Track2OauthToken != null)
538538
{
539-
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(null, this.CmdletCancellationToken).TokenValue;
539+
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(new TokenRequestContext(), this.CmdletCancellationToken).Token;
540540
options.SourceAuthentication = new HttpAuthorization("Bearer", oauthToken);
541541
}
542542

@@ -556,7 +556,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
556556
Track2Models.CommitBlockListOptions commitBlockListOptions = new Track2Models.CommitBlockListOptions();
557557
commitBlockListOptions.HttpHeaders = httpHeaders;
558558
commitBlockListOptions.Metadata = srcProperties.Metadata;
559-
commitBlockListOptions.Tags = blobTags ?? null;
559+
commitBlockListOptions.Tags = (blobTags is null || blobTags.Count == 0) ? null : blobTags;
560560

561561
if (accesstier != null)
562562
{
@@ -578,7 +578,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
578578
stageBlockOptions.SourceRange = new global::Azure.HttpRange(copyoffset, blocksize);
579579
if (sourceChannel.StorageContext != null && sourceChannel.StorageContext.Track2OauthToken != null)
580580
{
581-
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(null, this.CmdletCancellationToken).TokenValue;
581+
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(new TokenRequestContext(), this.CmdletCancellationToken).Token;
582582
stageBlockOptions.SourceAuthentication = new HttpAuthorization("Bearer", oauthToken);
583583
}
584584
destBlockBlob.StageBlockFromUri(srcUri, id, stageBlockOptions, cancellationToken: this.CmdletCancellationToken);

src/Storage/Storage/Common/Cmdlet/NewAzureStorageContext.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ public SwitchParameter UseConnectedAccount
191191
set { isOAuth = value; }
192192
}
193193

194-
private bool isOAuth = true;
194+
private bool isOAuth = false;
195195

196196
private const string ProtocolHelpMessage = "Protocol specification (HTTP or HTTPS), default is HTTPS";
197197
[Parameter(HelpMessage = ProtocolHelpMessage,
@@ -635,12 +635,15 @@ public override void ExecuteCmdlet()
635635
account = GetAnonymousStorageAccountFromAzureEnvironment(StorageAccountName, useHttps, environmentName);
636636
break;
637637
case OAuthParameterSet:
638+
this.isOAuth = true;
638639
account = GetStorageAccountByOAuth(StorageAccountName, useHttps, storageEndpoint);
639640
break;
640641
case OAuthServiceEndpointParameterSet:
642+
this.isOAuth = true;
641643
account = GetStorageAccountByOAuth(this.BlobEndpoint, this.QueueEndpoint, this.FileEndpoint, this.TableEndpoint);
642644
break;
643645
case OAuthEnvironmentParameterSet:
646+
this.isOAuth = true;
644647
account = GetStorageAccountByOAuthFromAzureEnvironment(StorageAccountName, useHttps, environmentName);
645648
break;
646649
default:

src/Storage/Storage/Common/SasTokenHelper.cs

Lines changed: 6 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
698698
}
699699
else
700700
{
701-
sasBuilder = SetBlobPermission(sasBuilder, Permission);
701+
sasBuilder.SetPermissions(Permission, true);
702702
}
703703
}
704704
}
@@ -709,7 +709,7 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
709709
BlobContainerName = containerName,
710710
BlobName = blobName,
711711
};
712-
sasBuilder = SetBlobPermission(sasBuilder, Permission);
712+
sasBuilder.SetPermissions(Permission, true);
713713
if (StartTime != null)
714714
{
715715
sasBuilder.StartsOn = StartTime.Value.ToUniversalTime();
@@ -756,53 +756,6 @@ public static BlobSasBuilder SetBlobSasBuilder(string containerName,
756756
return sasBuilder;
757757
}
758758

759-
/// <summary>
760-
/// Set blob permission to SAS builder
761-
/// </summary>
762-
public static BlobSasBuilder SetBlobPermission(BlobSasBuilder sasBuilder, string rawPermission)
763-
{
764-
BlobContainerSasPermissions permission = 0;
765-
foreach (char c in rawPermission)
766-
{
767-
switch (c)
768-
{
769-
case 'r':
770-
permission = permission | BlobContainerSasPermissions.Read;
771-
break;
772-
case 'a':
773-
permission = permission | BlobContainerSasPermissions.Add;
774-
break;
775-
case 'c':
776-
permission = permission | BlobContainerSasPermissions.Create;
777-
break;
778-
case 'w':
779-
permission = permission | BlobContainerSasPermissions.Write;
780-
break;
781-
case 'd':
782-
permission = permission | BlobContainerSasPermissions.Delete;
783-
break;
784-
case 'l':
785-
permission = permission | BlobContainerSasPermissions.List;
786-
break;
787-
case 't':
788-
permission = permission | BlobContainerSasPermissions.Tag;
789-
break;
790-
case 'x':
791-
permission = permission | BlobContainerSasPermissions.DeleteBlobVersion;
792-
break;
793-
case 'i':
794-
permission = permission | BlobContainerSasPermissions.SetImmutabilityPolicy;
795-
break;
796-
default:
797-
// Can't convert to permission supported by XSCL, so use raw permission string
798-
sasBuilder.SetPermissions(rawPermission);
799-
return sasBuilder;
800-
}
801-
}
802-
sasBuilder.SetPermissions(permission);
803-
return sasBuilder;
804-
}
805-
806759
/// <summary>
807760
/// Get SAS string
808761
/// </summary>
@@ -978,55 +931,11 @@ public static AccountSasResourceTypes GetAccountSasResourceTypes(SharedAccessAcc
978931
/// </summary>
979932
public static AccountSasBuilder SetAccountPermission(AccountSasBuilder sasBuilder, string rawPermission)
980933
{
981-
AccountSasPermissions permission = 0;
982-
foreach (char c in rawPermission)
934+
if (!AccountSasPermissions.TryParse(rawPermission, out AccountSasPermissions permission))
983935
{
984-
switch (c)
985-
{
986-
case 'r':
987-
permission = permission | AccountSasPermissions.Read;
988-
break;
989-
case 'a':
990-
permission = permission | AccountSasPermissions.Add;
991-
break;
992-
case 'c':
993-
permission = permission | AccountSasPermissions.Create;
994-
break;
995-
case 'w':
996-
permission = permission | AccountSasPermissions.Write;
997-
break;
998-
case 'd':
999-
permission = permission | AccountSasPermissions.Delete;
1000-
break;
1001-
case 'l':
1002-
permission = permission | AccountSasPermissions.List;
1003-
break;
1004-
case 'u':
1005-
permission = permission | AccountSasPermissions.Update;
1006-
break;
1007-
case 'p':
1008-
permission = permission | AccountSasPermissions.Process;
1009-
break;
1010-
case 't':
1011-
permission = permission | AccountSasPermissions.Tag;
1012-
break;
1013-
case 'f':
1014-
permission = permission | AccountSasPermissions.Filter;
1015-
break;
1016-
case 'x':
1017-
permission = permission | AccountSasPermissions.DeleteVersion;
1018-
break;
1019-
case 'i':
1020-
permission = permission | AccountSasPermissions.SetImmutabilityPolicy;
1021-
break;
1022-
case 'y':
1023-
permission = permission | AccountSasPermissions.PermanentDelete;
1024-
break;
1025-
default:
1026-
// Can't convert to permission supported by XSCL, so use raw permission string
1027-
sasBuilder.SetPermissions(rawPermission);
1028-
return sasBuilder;
1029-
}
936+
// Can't convert to permission supported by XSCL, so use raw permission string
937+
sasBuilder.SetPermissions(rawPermission);
938+
return sasBuilder;
1030939
}
1031940
sasBuilder.SetPermissions(permission);
1032941
return sasBuilder;

src/Storage/Storage/Common/Util.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -766,13 +766,14 @@ public static ShareServiceClient GetTrack2FileServiceClient(AzureStorageContext
766766
throw new ArgumentException(Resources.DefaultStorageCredentialsNotFound);
767767
}
768768

769+
if (context.ShareTokenIntent != null)
770+
{
771+
options.ShareTokenIntent = context.ShareTokenIntent.Value;
772+
}
773+
769774
ShareServiceClient shareServiceClient;
770-
if (context.StorageAccount!= null && context.StorageAccount.Credentials != null && context.StorageAccount.Credentials.IsToken) //Oauth
775+
if (context.StorageAccount!= null && context.StorageAccount.Credentials != null && context.StorageAccount.Credentials.IsToken) //Oauth
771776
{
772-
if (context.ShareTokenIntent != null)
773-
{
774-
options.ShareTokenIntent = context.ShareTokenIntent.Value;
775-
}
776777
shareServiceClient = new ShareServiceClient(context.StorageAccount.FileEndpoint, context.Track2OauthToken, options);
777778
}
778779
else //sas , key or Anonymous, use connection string

0 commit comments

Comments
 (0)