Skip to content

Commit fee30da

Browse files
ibrandesgunjansingh-msftCopilot
authored
STG100 Beta Features (#46518)
* stg100 versioning changes (#46145) * stg100 versioning changes * removing extra space * fixing formatting error * listblob startsFrom changes (#46220) * listblob startsFrom changes * adding recordings * fixing review comments * adding listblobsbyhierachy tests * adding enableSmbDirectoryLease property (#46362) * adding enableSmbDirectoryLease property * adding tests * fixing linting errors * STG100 - Files Encryption in Transit (#46444) * encryption in transit changes * adding tests * fixing review comments * STG100 - Blob Principal Bound Identity SAS (#46282) * adding implementation and happy path test * adding more tests and recordings, and moving token extraction to common * re-adding recordings after pull * fixing string to sign test * forgot that token can't be recorded * reverting assets and moving query param * adding old assets tag back because im silly * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * Apply suggestion from @Copilot Co-authored-by: Copilot <[email protected]> * consolidating string to sign logic --------- Co-authored-by: Copilot <[email protected]> * STG100 - Datalake Principal Bound Identity SAS (#46445) * adding implementation and happy path test * adding more tests and recordings, and moving token extraction to common * re-adding recordings after pull * fixing string to sign test * forgot that token can't be recorded * reverting assets and moving query param * adding old assets tag back because im silly * whole feature * adding more tests and consolidating string to sign logic * fixing test that was unocovered through the fix to liveTestScenarioWithRetry * removing change in blobsasimplutil * STG100 - Get and Set Blob Tags Conditional Headers (#46406) * generating off swagger * wip * proper implementation added * adding tests and recordings * adding new headers to recording ignore list * regenerating off swagger and adding listblob starts from implementation back * fixing position of startsfrom in implementations * fixing formatting * fixing formatting again * updating recordings * STG100 - Queue User Delegation SAS (#46311) * adding implementation and happy path test * adding more tests and recordings, and moving token extraction to common * re-adding recordings after pull * fixing string to sign test * forgot that token can't be recorded * initial implementation * async implementations and tests * fixing typo * style * adding send message with user delegation sas test and service tests * expanding tid and oid acronyms * adding new test and recordings * removing change in blobsasimplutil * updating recordings * STG100 - reflect main branch swagger (#46474) * re-generating off of swagger * more swagger * enabling and disabling * swapping binary data for flux<bytebuffer> and removing requirement in module-info * STG100 - Files User Delegation Sas (#46376) * adding implementation and happy path test * adding more tests and recordings, and moving token extraction to common * re-adding recordings after pull * fixing string to sign test * forgot that token can't be recorded * initial implementation * async implementations and tests * fixing typo * style * initial implementation and fixing typos * adding oid tests * formatting * fixing tests in FileSasClientTests * adding service sync and async tests * spotless * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/implementation/ServicesImpl.java Co-authored-by: Copilot <[email protected]> * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/implementation/ServicesImpl.java Co-authored-by: Copilot <[email protected]> * undoing copilot change because it edited an impl file * regenerating off swagger * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/sas/ShareServiceSasSignatureValues.java Co-authored-by: Copilot <[email protected]> * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/sas/ShareServiceSasSignatureValues.java Co-authored-by: Copilot <[email protected]> * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/sas/ShareServiceSasSignatureValues.java Co-authored-by: Copilot <[email protected]> * Update sdk/storage/azure-storage-file-share/src/main/java/com/azure/storage/file/share/sas/ShareServiceSasSignatureValues.java Co-authored-by: Copilot <[email protected]> * removing oid and tid acronyms * removing changes to other packages from branching issue * removing changes to other packages from branching issue * please retain the indent git * correctly scoping file generateuserdelegationsas * adding scope verifying test for share * adding async tests and recordings * updating assets * updating assets --------- Co-authored-by: Copilot <[email protected]> * changing enablesmbdirectorylease getter and setter method names * re-generating off of all swaggers and fixing queue swagger link * adding queue data contributor rbac role to live test resources * making share service Share service * STG100 - DFS List Paths Begin From (#46469) * swagger changes * adding tests * adding recordings and fixing tests * fixing review comments * fixing review comments * renaming beginFrom to startFrom * adding records * STG100 - Create File With Data (#46486) * wip * swagger * making FilePropertySemantics a public model and updating options bags * wip md5 * md5 implementation and filepropertysemantics test * deleting redundant models * adding create tests * assets and spotbugs * assets again * more assets * changing get/setBinaryData to get/setData * adding new test for flux bytebuffer and explanitory comment for other test * adjusting recordings * test cleanup * updating assets after update from main * reverting smb directory lease property (#47094) * updating assets after update from main * updating datalake swagger to point to azure remote * reverting create file with data * updating assets for blob share and queue * updating assets for blob and datalake * updating changelogs to include new features * adjusting failing live tests * updating assets for queue --------- Co-authored-by: gunjansingh-msft <[email protected]> Co-authored-by: Copilot <[email protected]>
1 parent fad5e4f commit fee30da

File tree

112 files changed

+7549
-630
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

112 files changed

+7549
-630
lines changed

sdk/storage/azure-storage-blob/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
## 12.33.0-beta.1 (Unreleased)
44

55
### Features Added
6+
- Added support for the StartFrom parameter on `BlobContainerClient.listBlobs()` and `BlobContainerClient.listBlobsByHierarchy()` APIs.
7+
- Added support for conditional headers on `BlobClientBase.getTags()` and `BlobClientBase.setTags()` APIs.
8+
- Added support for Principal-Bound Identity User Delegation SAS.
69

710
### Breaking Changes
811

sdk/storage/azure-storage-blob/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "java",
44
"TagPrefix": "java/storage/azure-storage-blob",
5-
"Tag": "java/storage/azure-storage-blob_c018337a13"
5+
"Tag": "java/storage/azure-storage-blob_f26563826e"
66
}

sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/BlobContainerAsyncClient.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1170,9 +1170,10 @@ PagedFlux<BlobItem> listBlobsFlatWithOptionalTimeout(ListBlobsOptions options, S
11701170
ArrayList<ListBlobsIncludeItem> include
11711171
= options.getDetails().toList().isEmpty() ? null : options.getDetails().toList();
11721172

1173-
return StorageImplUtils.applyOptionalTimeout(this.azureBlobStorage.getContainers()
1174-
.listBlobFlatSegmentWithResponseAsync(containerName, options.getPrefix(), marker,
1175-
options.getMaxResultsPerPage(), include, null, null, Context.NONE),
1173+
return StorageImplUtils.applyOptionalTimeout(
1174+
this.azureBlobStorage.getContainers()
1175+
.listBlobFlatSegmentWithResponseAsync(containerName, options.getPrefix(), marker,
1176+
options.getMaxResultsPerPage(), include, options.getStartFrom(), null, null, Context.NONE),
11761177
timeout);
11771178
}
11781179

@@ -1299,7 +1300,8 @@ PagedFlux<BlobItem> listBlobsHierarchyWithOptionalTimeout(String delimiter, List
12991300
// Note that this prefers the value passed to .byPage(int) over the value on the options
13001301
finalOptions = new ListBlobsOptions().setMaxResultsPerPage(pageSize)
13011302
.setPrefix(options.getPrefix())
1302-
.setDetails(options.getDetails());
1303+
.setDetails(options.getDetails())
1304+
.setStartFrom(options.getStartFrom());
13031305
}
13041306
} else {
13051307
finalOptions = options;
@@ -1335,9 +1337,10 @@ PagedFlux<BlobItem> listBlobsHierarchyWithOptionalTimeout(String delimiter, List
13351337
ArrayList<ListBlobsIncludeItem> include
13361338
= options.getDetails().toList().isEmpty() ? null : options.getDetails().toList();
13371339

1338-
return StorageImplUtils.applyOptionalTimeout(this.azureBlobStorage.getContainers()
1339-
.listBlobHierarchySegmentWithResponseAsync(containerName, delimiter, options.getPrefix(), marker,
1340-
options.getMaxResultsPerPage(), include, null, null, Context.NONE),
1340+
return StorageImplUtils.applyOptionalTimeout(
1341+
this.azureBlobStorage.getContainers()
1342+
.listBlobHierarchySegmentWithResponseAsync(containerName, delimiter, options.getPrefix(), marker,
1343+
options.getMaxResultsPerPage(), include, options.getStartFrom(), null, null, Context.NONE),
13411344
timeout);
13421345
}
13431346

sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/BlobContainerClient.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,9 @@ public PagedIterable<BlobItem> listBlobs(ListBlobsOptions options, String contin
10261026
if (options != null) {
10271027
finalOptions.setMaxResultsPerPage(options.getMaxResultsPerPage())
10281028
.setPrefix(options.getPrefix())
1029+
.setStartFrom(options.getStartFrom())
10291030
.setDetails(options.getDetails());
1031+
10301032
}
10311033
/*
10321034
If pageSize was not set in a .byPage(int) method, the page size from options will be preserved.
@@ -1041,7 +1043,8 @@ public PagedIterable<BlobItem> listBlobs(ListBlobsOptions options, String contin
10411043
Callable<ResponseBase<ContainersListBlobFlatSegmentHeaders, ListBlobsFlatSegmentResponse>> operation
10421044
= () -> this.azureBlobStorage.getContainers()
10431045
.listBlobFlatSegmentWithResponse(containerName, finalOptions.getPrefix(), nextMarker,
1044-
finalOptions.getMaxResultsPerPage(), include, null, null, Context.NONE);
1046+
finalOptions.getMaxResultsPerPage(), include, finalOptions.getStartFrom(), null, null,
1047+
Context.NONE);
10451048

10461049
ResponseBase<ContainersListBlobFlatSegmentHeaders, ListBlobsFlatSegmentResponse> response
10471050
= StorageImplUtils.sendRequest(operation, timeout, BlobStorageException.class);
@@ -1159,7 +1162,8 @@ public PagedIterable<BlobItem> listBlobsByHierarchy(String delimiter, ListBlobsO
11591162
if (options != null) {
11601163
finalOptions.setMaxResultsPerPage(options.getMaxResultsPerPage())
11611164
.setPrefix(options.getPrefix())
1162-
.setDetails(options.getDetails());
1165+
.setDetails(options.getDetails())
1166+
.setStartFrom(options.getStartFrom());
11631167
}
11641168
/*
11651169
If pageSize was not set in a .byPage(int) method, the page size from options will be preserved.
@@ -1185,7 +1189,7 @@ private PagedResponse<BlobItem> listBlobsHierarchySegment(String marker, String
11851189
Callable<ResponseBase<ContainersListBlobHierarchySegmentHeaders, ListBlobsHierarchySegmentResponse>> operation
11861190
= () -> azureBlobStorage.getContainers()
11871191
.listBlobHierarchySegmentWithResponse(containerName, delimiter, options.getPrefix(), marker,
1188-
options.getMaxResultsPerPage(), include, null, null, Context.NONE);
1192+
options.getMaxResultsPerPage(), include, options.getStartFrom(), null, null, Context.NONE);
11891193

11901194
ResponseBase<ContainersListBlobHierarchySegmentHeaders, ListBlobsHierarchySegmentResponse> response
11911195
= StorageImplUtils.sendRequest(operation, timeout, BlobStorageException.class);

sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/BlobServiceVersion.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,12 @@ public enum BlobServiceVersion implements ServiceVersion {
147147
/**
148148
* Service version {@code 2025-11-05}.
149149
*/
150-
V2025_11_05("2025-11-05");
150+
V2025_11_05("2025-11-05"),
151+
152+
/**
153+
* Service version {@code 2026-02-06}.
154+
*/
155+
V2026_02_06("2026-02-06");
151156

152157
private final String version;
153158

@@ -169,6 +174,6 @@ public String getVersion() {
169174
* @return the latest {@link BlobServiceVersion}
170175
*/
171176
public static BlobServiceVersion getLatest() {
172-
return V2025_11_05;
177+
return V2026_02_06;
173178
}
174179
}

0 commit comments

Comments
 (0)