Skip to content

Commit 388188a

Browse files
klaudworksgaul
authored andcommitted
Fix server-side copy with Managed Identity in AzureBlobStore
1 parent a82ef4a commit 388188a

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/main/java/org/gaul/s3proxy/azureblob/AzureBlobStore.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,15 @@ public String copyBlob(String fromContainer, String fromName,
458458
.getBlobContainerClient(fromContainer)
459459
.getBlobClient(fromName);
460460
var url = fromClient.getBlobUrl();
461-
var token = fromClient.generateSas(values);
461+
String token;
462+
var cred = creds.get();
463+
if (!cred.identity.isEmpty() && !cred.credential.isEmpty()) {
464+
token = fromClient.generateSas(values);
465+
} else {
466+
var userDelegationKey = blobServiceClient.getUserDelegationKey(
467+
OffsetDateTime.now().minusMinutes(5), expiryTime);
468+
token = fromClient.generateUserDelegationSas(values, userDelegationKey);
469+
}
462470

463471
// TODO: is this the best way to generate a SAS URL?
464472
var azureOptions = new BlobUploadFromUrlOptions(url + "?" + token);

0 commit comments

Comments
 (0)