Skip to content

Commit 77297f1

Browse files
committed
Fix after test F,Q,DFS
1 parent 4efa5c5 commit 77297f1

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
@@ -458,14 +458,14 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
458458
Track2Models.PageBlobCreateOptions pageBlobCreateOptions = new Track2Models.PageBlobCreateOptions();
459459
pageBlobCreateOptions.HttpHeaders = httpHeaders;
460460
pageBlobCreateOptions.Metadata = srcProperties.Metadata;
461-
pageBlobCreateOptions.Tags = blobTags ?? null;
461+
pageBlobCreateOptions.Tags = (blobTags is null || blobTags.Count == 0) ? null : blobTags;
462462

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

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

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

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

@@ -507,7 +507,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
507507

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

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

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

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

563563
if (accesstier != null)
564564
{
@@ -580,7 +580,7 @@ private async Task CopyFromUri(long taskId, IStorageBlobManagement destChannel,
580580
stageBlockOptions.SourceRange = new global::Azure.HttpRange(copyoffset, blocksize);
581581
if (sourceChannel.StorageContext != null && sourceChannel.StorageContext.Track2OauthToken != null)
582582
{
583-
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(null, this.CmdletCancellationToken).TokenValue;
583+
string oauthToken = sourceChannel.StorageContext.Track2OauthToken.GetToken(new TokenRequestContext(), this.CmdletCancellationToken).Token;
584584
stageBlockOptions.SourceAuthentication = new HttpAuthorization("Bearer", oauthToken);
585585
}
586586
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
@@ -767,13 +767,14 @@ public static ShareServiceClient GetTrack2FileServiceClient(AzureStorageContext
767767
throw new ArgumentException(Resources.DefaultStorageCredentialsNotFound);
768768
}
769769

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

0 commit comments

Comments
 (0)