1 | # Release History
|
2 |
|
3 | ## 12.10.0 (2022-05-12)
|
4 |
|
5 | ### Features Added
|
6 |
|
7 | - Includes all features released in 12.10.0-beta.1.
|
8 |
|
9 | ### Bugs Fixed
|
10 |
|
11 | - Refined user-agent value to avoid failure when os information is not available on some platforms.
|
12 | - Fix an issue of not returning raw blob properties in ContainerClient.listBlobsFlat() and ContainerClient.listBlobsByHierarchy().
|
13 |
|
14 | ## 12.10.0-beta.1 (2022-04-19)
|
15 |
|
16 | ### Features Added
|
17 |
|
18 | - Added support for service version 2021-06-08.
|
19 | - Added pageable output of PageBlobClient.listPageRanges() and PageBlobClient.listPageRangesDiff().
|
20 | - Added ability to copy source blob tags for BlobClient.syncCopyFromURL().
|
21 |
|
22 | ### Bugs Fixed
|
23 |
|
24 | - Fix incorrect browser mapping path for BufferScheduler.js
|
25 | - Add `react-native` mapping to ESM entrypoint
|
26 |
|
27 | ## 12.9.0 (2022-03-11)
|
28 |
|
29 | ### Features Added
|
30 |
|
31 | - Includes all features released in 12.9.0-beta.1, 12.9.0-beta.2, 12.9.0-beta.3 and 12.9.0-beta.4.
|
32 |
|
33 | ### Bugs Fixed
|
34 |
|
35 | - Fixed an issue of always sending x-ms-encryption-algorithm header in request.
|
36 |
|
37 | ## 12.9.0-beta.4 (2022-03-04)
|
38 |
|
39 | ### Features Added
|
40 |
|
41 | - Added ability to specify Disk Compute AAD Audience in StoragePipelineOptions.
|
42 |
|
43 | ### Bugs Fixed
|
44 |
|
45 | - Set correct content length in requests for uploading operations to avoid unexpected failure if customized content length is incorrect.
|
46 |
|
47 | ## 12.9.0-beta.3 (2022-02-11)
|
48 |
|
49 | ### Features Added
|
50 |
|
51 | - Added support for service version 2021-04-10.
|
52 | - Added support for finding blobs by tags in a container.
|
53 |
|
54 | ### Bugs Fixed
|
55 |
|
56 | - Fixed a bug where customized `ProxyOptions` is overwrited by a default one when initializing `BlobServiceClient`, `BlobClient`, `AppendBlobClient`, `BlockBlobClient`, `PageBlobClient` or `ContainerClient` with connection string.
|
57 |
|
58 | ## 12.9.0-beta.2 (2021-12-03)
|
59 |
|
60 | ### Features Added
|
61 |
|
62 | - Added support for service version 2021-02-12
|
63 | - Added support for listing system containers with `BlobServiceClient.listContainers()`.
|
64 | - Added support for blob names container invalid XML characters.
|
65 |
|
66 | ## 12.9.0-beta.1 (2021-11-09)
|
67 |
|
68 | ### Features Added
|
69 |
|
70 | - Added support for service version 2020-12-06.
|
71 | - Added support for Encryption Scope SAS.
|
72 | - Added support for Encryption Scopes with BlobBaseClient.SyncCopyFromUriAsync().
|
73 | - Added support for generating SAS URLs with the Permanent Delete ('y') SAS permission.
|
74 |
|
75 | ## 12.8.0 (2021-09-10)
|
76 |
|
77 | ### Features Added
|
78 |
|
79 | - Includes all features released in 12.8.0-beta.1.
|
80 |
|
81 | ## 12.7.0 (2021-08-02)
|
82 |
|
83 | - Support for Node.js 8 and IE 11 has been dropped. Please see our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details.
|
84 | - Changed TS compilation target to ES2017 in order to produce smaller bundles and use more native platform features
|
85 | - Updated our internal core package dependencies to their latest versions in order to add support for Opentelemetry 1.0.0 which is compatible with the latest versions of our other client libraries.
|
86 |
|
87 | ## 12.8.0-beta.1 (2021-07-28)
|
88 |
|
89 | ### Features Added
|
90 |
|
91 | - Added support for service version 2020-10-02.
|
92 | - Added support for Immutable Storage with Versioning
|
93 | - Added BlobClient.setImmutibilityPolicy()
|
94 | - Added BlobClient.seleteImmutabilityPolicy()
|
95 | - Added BlobClient.setLegalHold()
|
96 | - Added support for listing deleted root blobs with versions `ContainerClient.listBlobFlat()` and `ContainerClient.listBlobHierarchy()`.
|
97 | - Added support for OAuth copy sources for synchronous copy operations.
|
98 | - Added support for Parquet as an input format in `BlockBlobClient.query()`.
|
99 | - With the dropping of support for Node.js versions that are no longer in LTS, the dependency on `@types/node` has been updated to version 12. Read our [support policy](https://github.com/Azure/azure-sdk-for-js/blob/main/SUPPORT.md) for more details.
|
100 |
|
101 | ## 12.6.0 (2021-06-09)
|
102 |
|
103 | - Includes all features released in 12.6.0-beta.1.
|
104 |
|
105 | ## 12.6.0-beta.1 (2021-05-14)
|
106 |
|
107 | - Updated Azure Storage Service API version to 2020-08-04.
|
108 | - Restoring deleted container doesn't support renaming anymore, deprecated `destinationContainerName` in `ServiceUndeleteContainerOptions` for `BlobServiceClient.undeleteContainer()`.
|
109 |
|
110 | ## 12.5.0 (2021-03-10)
|
111 |
|
112 | - Includes all features released in 12.5.0-beta.1.
|
113 |
|
114 | ## 12.5.0-beta.1 (2021-02-09)
|
115 |
|
116 | - Now support Batch operations scoped to the Container level. You can use `ContainerClient.getBlobBatchClient()` to get such a `BlobBatchClient`.
|
117 |
|
118 | ## 12.4.1 (2021-02-03)
|
119 |
|
120 | - Fixed a compile failure due to "Can't resolve 'crypto'" in Angular. [Issue #13267](https://github.com/Azure/azure-sdk-for-js/issues/13267).
|
121 | - Fixed an issue that the download stream returned by `BlobClient.download` won't release underlying resources unless it's fully consumed. [Isssue #11850](https://github.com/Azure/azure-sdk-for-js/issues/11850).
|
122 | - Fixed an error when listing blob with a metadata key of `_` [issue #9197](https://github.com/Azure/azure-sdk-for-js/issues/9171)
|
123 | - The `"Unclosed root tag"` XML parser error is now retriable. [PR #13076](https://github.com/Azure/azure-sdk-for-js/pull/13076).
|
124 |
|
125 | ## 12.4.0 (2021-01-12)
|
126 |
|
127 | - Added a new `from(permissionLike)` function to `AccountSASPermissions`, `BlobSASPermissions` and `ContainerSASPermissions` for creating such a permission from a raw permission-like object. Addressed issue [9714](https://github.com/Azure/azure-sdk-for-js/issues/9714).
|
128 |
|
129 | ## 12.4.0-beta.1 (2020-12-09)
|
130 |
|
131 | - Updated Azure Storage Service API version to 2020-04-08.
|
132 | - Added a new interface `BlockBlobClient.syncUploadFromURL()` to support creating a new Block Blob where the contents of the blob are read from a given URL.
|
133 | - Blob Tags updates: `BlobClient.setTags()` and `BlobClient.getTags()` now support the `LeaseAccessConditions` and `BlobServiceClient.findBlobsByTags()` will return all matching tags for each blob.
|
134 | - Added `generateSasUrl` to `BlobClient` and `ContainerClient` to generate a service-level SAS URI for the client.
|
135 | - Added `generateAccountSasUrl` to `BlobServiceClient` to generate an account-level SAS URI for the client.
|
136 | - Fixed a bug where the `credential` property of the `StorageClient` is not set correctly when using a Token credential. Fixed bug [12219](https://github.com/Azure/azure-sdk-for-js/issues/12219).
|
137 | - Blob Batch operations now reorder the subresponses in the client side to perserve the original input order. See `BlobBatchClient.submitBatch()` and [12335](https://github.com/Azure/azure-sdk-for-js/issues/12335).
|
138 | - Won't remove the first space in the `userAgentOptions.userAgentPrefix` passed to the `newPipeline()` now. Fixed bug [7536](https://github.com/Azure/azure-sdk-for-js/issues/7536).
|
139 | - Added `isHierarchicalNamespaceEnabled` to the response of `BlobServiceClient.getAccountInfo()`.
|
140 |
|
141 | ## 12.3.0 (2020-11-10)
|
142 |
|
143 | - Added `BlockBlobClient.uploadData(data: Buffer | Blob | ArrayBuffer | ArrayBufferView, options)` for parallel uploading. It's avaiable in both Node.js and browsers.
|
144 | - Added new SAS permissions Move(m) and Execute(e) for Blob and Container. Also supports specifying an authorized object ID via `saoid` and a correlation ID via `scid` for user delegation SAS.
|
145 |
|
146 | ## 12.3.0-beta.1 (2020-10-13)
|
147 |
|
148 | - Updated Azure Storage Service API version to 2020-02-10.
|
149 | - Added support for Blob Last Access Time tracking.
|
150 | - Added support for Blob Query Arrow output format.
|
151 | - Added support for Container Soft Delete.
|
152 |
|
153 | ## 12.2.1 (2020-09-17)
|
154 |
|
155 | - Bug fix - Fixes an issue where`BlockBlobClient.uploadStream()` will give an "Invalid Verb" error when keep-alive is enabled. Fixed bug [11187](https://github.com/Azure/azure-sdk-for-js/issues/11187).
|
156 |
|
157 | ## 12.2.0 (2020-09-08)
|
158 |
|
159 | - Added RehydratePriority to BlobProperties and BlobItemProperties.
|
160 | - Fixed `BlockBlobClient.uploadStream()` to support `bufferSize` larger than `buffer.constants.MAX_LENGTH`.
|
161 | - Added support for Object Replication Service.
|
162 | - Added custom domain support.
|
163 | - Supported Append Blob Seal.
|
164 | - Supported tags conditional operations.
|
165 | - The Static Website Service now supports a DefaultIndexDocumentPath for a global HTTP 200 route within the static website. You can get it by `BlobServiceClient.getProperties()` and set it via `blobServiceClient.setProperties()`.
|
166 | - Bug fix - `credential` parameter of `newPipeline()` function is now optional. If not specified, `AnonymousCredential` is used. Fixes bug [9628](https://github.com/Azure/azure-sdk-for-js/issues/9628).
|
167 | - Bug fix - high level upload functions `BlockBlobClient.uploadFile()`, `BlockBlobClient.uploadStream()` and `BlockBlobClient.uploadBrowserData()` now support setting tier. Fixes bug [9062](https://github.com/Azure/azure-sdk-for-js/issues/9062).
|
168 | - Optimized error semantic for `listBlobsByHierarchy()`. Using `listBlobsByHierarchy()` with empty `delimiter` will now fail-fast.
|
169 | - Bug fix - Content-Length header is no more ignored. Fixes bugs [8903](https://github.com/Azure/azure-sdk-for-js/issues/8903), [9300](https://github.com/Azure/azure-sdk-for-js/issues/9300) and [10614](https://github.com/Azure/azure-sdk-for-js/issues/10614).
|
170 |
|
171 | ## 12.2.0-preview.1 (2020-07-03)
|
172 |
|
173 | - Updated Azure Storage Service API version to 2019-12-12.
|
174 | - Supported quick query. Added a new API `BlockBlobClient.query()`.
|
175 | - Supported blob versioning.
|
176 | - Supported blob tags.
|
177 | - Increased the maximum block size for Block Blob from 100MiB to 4000MiB(~4GB). And thereby supporting ~200TB maximum size for Block Blob.
|
178 | - Added convenience method `createIfNotExists` for `ContainerClient`, `AppendBlobClient` and `PageBlobClient`.
|
179 | - Added convenience method `deleteIfExists` for `ContainerClient` and `BlobClients`.
|
180 |
|
181 | ## 12.1.2 (2020-05-20)
|
182 |
|
183 | - Fix data corruption failure error [issue #6411](https://github.com/Azure/azure-sdk-for-js/issues/6411) when downloading compressed files. [PR #7993](https://github.com/Azure/azure-sdk-for-js/pull/7993)
|
184 | - Fix un-handled TypeError [issue #8499](https://github.com/Azure/azure-sdk-for-js/issues/8499) in Electron applications. [PR #8568](https://github.com/Azure/azure-sdk-for-js/pull/8568)
|
185 | - Updated to use `@opentelemetry/api` 0.6.1 via `@azure/core-tracing`. [PR #7998](https://github.com/Azure/azure-sdk-for-js/pull/7998)
|
186 | - Updated to use `typescript` 3.8.3. [PR #8659](https://github.com/Azure/azure-sdk-for-js/pull/8659)
|
187 |
|
188 | ## 12.1.1 (2020-03-12)
|
189 |
|
190 | - Bug fix - Blob SAS's `sr` field is now properly set when generating SAS for a blob using a stored policy with `signedpermissions`. For more details about Service SAS, please refer to [link](https://docs.microsoft.com/rest/api/storageservices/create-service-sas).
|
191 | - Fixed unexpected hang issue when uploading empty body. Fixed bug [6904](https://github.com/Azure/azure-sdk-for-js/issues/6904).
|
192 |
|
193 | ## 12.1.0 (2020-02-12)
|
194 |
|
195 | - Updated Azure Storage Service API version to 2019-07-07.
|
196 | - Add support for Encryption Scope, which is similar to regular CPK, except the encryption key is provided by name.
|
197 | - MD5 and CRC headers for Blob Copy: add `contentMD5`and `xMsContentCrc64` to `BlobCopyFromURLHeaders` and `sourceContentMD5` to `BlobSyncCopyFromURLOptions`.
|
198 | - Add `getPageRangesDiffForManagedDisks` to `PageBlobClient`.
|
199 | - Fixed a bug where the package didn't work as expected when bundling web applications. [PR #7298](https://github.com/Azure/azure-sdk-for-js/pull/7298)
|
200 |
|
201 | ## 12.0.2 (2020-01-09)
|
202 |
|
203 | - Bug fix - Name properties on clients now support more kinds of endpoints(IPv4/v6 hosts, single word domains). [PR #6753](https://github.com/Azure/azure-sdk-for-js/pull/6753)
|
204 | - Service clients now share a single http client instance by default. [PR #6657](https://github.com/Azure/azure-sdk-for-js/pull/6657)
|
205 |
|
206 | Previously, a new http client was created for each service client if none was provided by the user. This could result in TCP port exhaustion under heavy usage with the keepAlive option enabled because each http client has its own persistent TCP connection. This change creates a single http client instance which is shared among all service clients by default.
|
207 |
|
208 | ## 12.0.1 (2019-12-04)
|
209 |
|
210 | - Updated to use OpenTelemetry 0.2 via `@azure/core-tracing`
|
211 | - Bug Fix - Convert empty prefixes (`""`) to `undefined` when passed as options to the `listContainers`, `listBlobsFlat`, and `listBlobsByHierarchy` methods to avoid sending an invalid request to the service. Fixes bug [5817](https://github.com/Azure/azure-sdk-for-js/issues/5817).
|
212 | - Added a warning to the documentation of `downloadToBuffer` that explains the limitations of Node.js `Buffer` sizes to around 2GB on 64-bit architectures and 1GB on 32-bit architectures.
|
213 | - Documented the behavior of `getProperties` methods with respect to metadata keys and their casing inconsistency when compared to the metadata keys returned through corresponding "list" methods with the `includeMetadata` option.
|
214 |
|
215 | ## 12.0.0 (2019-10-30)
|
216 |
|
217 | - This release marks the general availability of the `@azure/storage-blob` package.
|
218 | - Bug Fix - Previous versions of `@azure/storage-blob` preview library failed for React apps because of the usage of `fs.stat` method which is not available in browsers and due to the presence of some circular dependencies. Both of these issues are fixed in this new release.
|
219 | - [Breaking] The custom browser and retry policies that are specific to the Storage libraries have been
|
220 | renamed to have the `Storage` prefix. [PR 5862](https://github.com/Azure/azure-sdk-for-js/pull/5862).
|
221 | Below are the entities that now have the Storage prefix
|
222 | - BrowserPolicy
|
223 | - BrowserPolicyFactory
|
224 | - RetryPolicy
|
225 | - RetryPolicyType
|
226 | - RetryOptions
|
227 | - RetryPolicyFactory
|
228 | - [Breaking] `LeaseClient` is renamed to `BlobLeaseClient`. The helper method `getLeaseClient` on both `BlobClient` and `ContainerClient` is renamed to `getBlobLeaseClient`.
|
229 | - [Breaking] The properties in the `StoragePipelineOptions` interface have been updated as below:
|
230 | - The `proxy` property of type `ProxySettings | string` has been renamed to `proxyOptions` and
|
231 | will be of type `ProxyOptions`. If you have been passing url directly, split the value into `host`
|
232 | and `port` then pass it as a json object.
|
233 | - The `telemetry` property of type `TelemetryOptions` has been renamed to `userAgentOptions` of
|
234 | type `UserAgentOptions`.
|
235 | - The `logger` is no longer a property available to configure. To enable logging, please see the
|
236 | [Troubleshooting](https://github.com/Azure/azure-sdk-for-js/blob/0ddc2f3c3d4658b20d96910acc37a77e5209e5e3/sdk/storage/storage-blob/README.md#troubleshooting) section of our readme.
|
237 | - The `UniqueRequestIdPolicy` and `KeepAlivePolicy` are no longer exported from this library. The
|
238 | corresponding policies from the `@azure/core-http` library are meant to be used instead.
|
239 | - `beginCopyFromURL` is added to the `BlobClient`, it returns a poller that can be used to watch the status of a copy operation. It also supports cancelling a pending copy.
|
240 | - Updates to `BlockBlobClient.uploadStream`
|
241 | - [Breaking] `maxBuffers` attribute of is renamed to `maxConcurrency`
|
242 | - Added default values for parameters, bufferSize = `8MB` and maxConcurrency = `5`
|
243 | - [Breaking] Bug Fix - The page object returned from `ContainerClient.listContainers` had its `containerItems` property set to an empty string instead of an empty array if the storage account has no blob containers. The issue is fixed in this new release.
|
244 | - `BlobClient.downloadToBuffer()` helper method has a new overload where it is not required to pass the `Buffer`. Attributes `offset` and `count` are optional, downloads the entire blob if they are not provided.
|
245 | - [Breaking] The default browser bundle has been removed from the npm package. Bundling your application with a bundler such as Webpack is the recommended approach to building a browser bundle. For details on how to do this, please refer to our [bundling documentation](https://aka.ms/AzureSDKBundling).
|
246 |
|
247 | ## 12.0.0-preview.5 (2019-10-22)
|
248 |
|
249 | - [Breaking] `IPRange` is renamed to `SasIPRange`. [PR #5551](https://github.com/Azure/azure-sdk-for-js/pull/5551)
|
250 | - Created new interface `CommonOptions`. This interface is for standard options that apply to all methods that invoke remote operations. This interface currently contains options that enable client-side tracing of the SDK. [PR #5550](https://github.com/Azure/azure-sdk-for-js/pull/5550)
|
251 | - [Breaking] `Models` is no longer exported in public API surface. Instead generated model types required by the public API are explicitly re-exported. In the case where convenience layer already defined a type with conflicting name, the model type is aliased with `Model` suffix. [PR #5567](https://github.com/Azure/azure-sdk-for-js/pull/5567)
|
252 | - [Breaking] Cancelling an operation now throws a standardized error with the name `AbortError`. [PR #5633](https://github.com/Azure/azure-sdk-for-js/pull/5663)
|
253 | - [Breaking] `blobName` on `AppendBlobClient`, `BlobClient`, `BlockBlobClient` and `PageBlobClient` is renamed to `name`. [PR #5613](https://github.com/Azure/azure-sdk-for-js/pull/5613)
|
254 | - [Breaking] New `BlobBatchClient` allowing batched requests to the Azure Storage Blob service. [PR #5634](https://github.com/Azure/azure-sdk-for-js/pull/5634)
|
255 | - Renamed `BatchRequest` to `BlobBatch`, flattened `BatchDeleteRequest` and `BatchSetTierRequest` into `BlobBatch`
|
256 | - Moved `submitBatch` code from `BlobServiceClient` into new `BlobBatchClient`, created new `deleteBlobs` and `setBlobsAccessTier` helpers on `BlobBatchClient`
|
257 | `BlobBatchClient` contains `setBlobsAccessTier`, `submitBatch` and `deleteBlobs` helper methods. `BlobBatch` represents an aggregated set of operations on blobs, `delete` and `setAccessTier` functionalities are supported currently.
|
258 | - [Breaking] Flattened the conditions type `BlobRequestConditions` instead of current nested one. It replaces `ContainerAccessConditions` and `BlobAccessConditions`.
|
259 | In addition, various conditions fields are renamed into simply `conditions` except `sourceModifiedAccessConditions` which is renamed to `sourceConditions`.
|
260 | This makes it more convenient to pass in conditional request options. [PR #5672](https://github.com/Azure/azure-sdk-for-js/pull/5672).
|
261 |
|
262 | An example:
|
263 |
|
264 | ```js
|
265 | {
|
266 | blobAccessConditions: {
|
267 | modifiedAccessConditions: {
|
268 | ifMatch: uploadResponse.eTag
|
269 | }
|
270 | }
|
271 | ```
|
272 |
|
273 | turns into
|
274 |
|
275 | ```js
|
276 | {
|
277 | conditions: {
|
278 | ifMatch: uploadResponse.eTag
|
279 | }
|
280 | ```
|
281 |
|
282 | - [Breaking] `eTag` attribute is renamed to `etag`. [PR #5674](https://github.com/Azure/azure-sdk-for-js/pull/5674)
|
283 | - [Breaking] `body` field from `RestError` Object in core-http Library is removed, the `response` property on the error will now have the `parsedBody` & `headers` along with raw body & headers that are already present. PRs [#5670](https://github.com/Azure/azure-sdk-for-js/pull/5670), [#5437](https://github.com/Azure/azure-sdk-for-js/pull/5437)
|
284 | - Errors from the storage service can be seen in an extra field `details` with the expected error code. [#5688](https://github.com/Azure/azure-sdk-for-js/pull/5688)
|
285 | - [Breaking] `progress` callback in the option bags of all the helper methods is renamed to `onProgress`. [PR #5676](https://github.com/Azure/azure-sdk-for-js/pull/5676)
|
286 | - [Breaking] Consolidated `PageRange` and `ClearRange` types. They now have `offset` and `count` attributes as opposed to the older `start` and `end` attributes.
|
287 | [PR #5632](https://github.com/Azure/azure-sdk-for-js/pull/5632)
|
288 | - [Breaking] Type of the `permissions` attribute in the options bag `BlobSASSignatureValues` to be passed into `generateBlobSASQueryParameters` is changed to `BlobSASPermissions` from type `string`. [PR #5626](https://github.com/Azure/azure-sdk-for-js/pull/5626)
|
289 | - Similarly, `AccountSASPermissions` for `generateAccountSASQueryParameters` instead of type `string`.
|
290 | - Example - permissions attribute in `generateBlobSASQueryParameters`
|
291 | - `permissions: BlobSASPermissions.parse("racwd").toString()` changes to `BlobSASPermissions.parse("racwd")`
|
292 | - Renames for following Options interfaces. [PR #5650](https://github.com/Azure/azure-sdk-for-js/pull/5650)
|
293 | - `DownloadFromBlobOptions` -> `BlobDownloadToBufferOptions`,
|
294 | - `UploadStreamToBlockBlobOptions` -> `BlockBlobUploadStreamOptions`,
|
295 | - `UploadToBlockBlobOptions` -> `BlockBlobParallelUploadOptions`
|
296 | - [Breaking] Appropriate attribute renames in all the interfaces. PRs [#5580](https://github.com/Azure/azure-sdk-for-js/pull/5580),[#5630](https://github.com/Azure/azure-sdk-for-js/pull/5630)
|
297 | - Example - `nextMarker` -> `continuationToken`, `HTTPClient` -> `HttpClient`, `permission` -> `permissions`, `parallelism` -> `concurrency`
|
298 | - Bug fix - Name properties on clients now support the Emulator. [PR #5557](https://github.com/Azure/azure-sdk-for-js/pull/5557)
|
299 | - emulator url when the blobEndpoint is `http://127.0.0.1:10000/devstoreaccount1` supported
|
300 | - emulator connection string shorthands are supported
|
301 | - `UseDevelopmentStorage=true`
|
302 | - (with proxyURI) `UseDevelopmentStorage=true;DevelopmentStorageProxyUri=proxyURI`
|
303 | - [Breaking] `encrypted` attribute is removed from `BlobMetadata` interface. [PR #5612](https://github.com/Azure/azure-sdk-for-js/pull/5612)
|
304 | - [Breaking] Return type of `downloadToBuffer` helper method on `BlobClient` is changed to `Promise<Buffer>` from `Promise<void>` [PR #5624](https://github.com/Azure/azure-sdk-for-js/pull/5624)
|
305 | - [Breaking] IE11 needs `Object.assign` polyfill loaded. [PR #5727](https://github.com/Azure/azure-sdk-for-js/pull/5727)
|
306 |
|
307 | ## 12.0.0-preview.4 (2019-10-09)
|
308 |
|
309 | - [Breaking] Replace string array with boolean flags to specify dataset to include when listing containers or blobs.
|
310 | - For listing containers
|
311 | Before this change the option is specified as
|
312 | ```js
|
313 | blobServiceClient.listContainers({
|
314 | include: "metadata",
|
315 | });
|
316 | ```
|
317 | After this change:
|
318 | ```js
|
319 | blobServiceClient.listContainers({
|
320 | includeMetadata: true,
|
321 | });
|
322 | ```
|
323 | - For listing blobs
|
324 | Before this change the option is specified as
|
325 | ```js
|
326 | containerClient.listBlobsFlat({
|
327 | include: ["snapshots", "metadata", "uncommittedblobs", "copy", "deleted"],
|
328 | });
|
329 | ```
|
330 | After this change:
|
331 | ```js
|
332 | containerClient.listBlobsFlat({
|
333 | includeCopy: true,
|
334 | includeDeleted: true,
|
335 | includeMetadata: true,
|
336 | includeSnapshots: true,
|
337 | includeUncommitedBlobs: true,
|
338 | });
|
339 | ```
|
340 | - [Breaking] `BlobClient.setTier()` is renamed to `BlobClient.setAccessTier()`.
|
341 | - [Breaking] Fixed typo - `chanageLease` -> `changeLease`, a method on `LeaseClient`.
|
342 | - Library tries to load the proxy settings from the environment variables like HTTP_PROXY if the proxy settings are not provided when clients like `BlobServiceClient` or `BlobClient` are instantiated.
|
343 | - Added development connection string support to connect to the storage emulator [Azurite - Extension for VS Code](https://marketplace.visualstudio.com/items?itemName=Azurite.azurite)
|
344 | - Development Connection String
|
345 | - `DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;`
|
346 | - Shorthand notation is also supported
|
347 | - `UseDevelopmentStorage=true` (or `UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri`)
|
348 | - Added name properties on all the clients for convenience.
|
349 | - `accountName` is added to `AppendBlobClient`, `BlobClient`, `BlobServiceClient`, `BlockBlobClient`, `ContainerClient` and `PageBlobClient`.
|
350 | - `containerName` is added to `AppendBlobClient`, `BlobClient`, `BlockBlobClient`, `ContainerClient` and `PageBlobClient`.
|
351 | - `blobName` is added to `AppendBlobClient`, `BlobClient`, `BlockBlobClient` and `PageBlobClient`.
|
352 | - [Breaking] `Models.StorageServiceProperties` is renamed to `Models.BlobServiceProperties`
|
353 | - [Breaking] `Models.StorageServiceStats` is renamed to `Models.BlobServiceStatistics`
|
354 | - [Breaking] `UserDelegationKey.signedOid` is renamed to `UserDelegationKey.signedObjectId`. `UserDelegationKey.signedTid` is renamed to `UserDelegationKey.signedTenantId`.
|
355 |
|
356 | ## 12.0.0-preview.3 (2019-09-11)
|
357 |
|
358 | - [Breaking] `RawTokenCredential` is dropped. TokenCredential implementations can be found in the [@azure/identity](https://www.npmjs.com/package/@azure/identity) library for authentication.
|
359 | - Updated Azure Storage Service API version to 2019-02-02.
|
360 | - A new API `BlobServiceClient.submitBatch()` supports Blob Batch operation which allows multiple requests to be sent within a single request body.
|
361 | - Added support for customer provided encryption key.
|
362 | - Added support for rehydrate priority with additional option to methods `BlobClient.startCopyFromURL()` and `BlobClient.setTier()`.
|
363 | - APIs `BlobClient.startCopyFromURL()`, `BlockBlobClient.upload()`, `BlockBlobClient.commitBlockList()` and `PageBlobClient.create()` now support set the blob tier within the API call.
|
364 | - Responses for all APIs now return x-ms-client-request-id through `clientRequestId` that was passed in on the request from client-side.
|
365 | - Exposed options to accept CRC64 as a transactional data integrity mechanism for data transfer APIs.
|
366 | - Added overloads of `generateBlobSASQueryParameters` functions to generate user delegation SAS.
|
367 | - `expiry` and `start` in `AccessPolicy` are now optional in `ContainerClient.setAccessPolicy` and `ContainerClient.getAccessPolicy`.
|
368 | - Exported `HttpRequestBody` type for who wants to implement a customized HTTP client.
|
369 | - Fixed a bug of `BlobClient.downloadToBuffer()` when provided offset is not 0.
|
370 | - Fixed a bug that `Aborter` cannot work during retry interval.
|
371 | - Fixed a bug that `Aborter` throws timeout error even though it succeeds of `BlockBlobClient.download()`.
|
372 | - Fixed a bug that "err.code.toUpperCase is not a function" when retries in browser.
|
373 | - Export `RetryPolicyType`.
|
374 | - `Aborter` doesn't require `dom` as tsconfig lib requirement anymore for `Event` type.
|
375 | - Service SAS generation now supports snapshot access control from 2018-11-09 in `generateBlobSASQueryParameters()`.
|
376 | - Service SAS generation now supports snapshot access control from API version 2018-11-09 in `generateBlobSASQueryParameters()`.
|
377 | - A new API `PageBlobClient.uploadPagesFromURL()` allows pages in a page blob to be written using a range of another blob as a source. This permits synchronous server-side copies to be orchestrated for page blobs of any size.
|
378 | - A new API `AppendBlobClient.appendBlockFromURL()` commits a new block of data to the end of an append blob. Method uses a range of another blob as a source. This permits synchronous server-side copies to be orchestrated for append blobs of any size.
|
379 | - A new API `BlobClient.syncCopyFromURL()` allows a block blob to be copied synchronously using a URL as a source. This API has a maximum size of 256 MB and preserves metadata and block list.
|
380 | - A new API `BlobServiceClient.getUserDelegationKey()` added to get a key that can be used to generate a user delegation SAS (shared access signature).
|
381 | - Updated HTTP client from axios to node-fetch in Node.js runtime.
|
382 | - A new option `keepAliveOptions` added to parameter of `newPipeline()` which controls keep-alive configurations. Keep-alive is enabled by default.
|
383 | - Pass through `options.abortSignal` to the optional `abortSignal` attribute in option bags instead of using `AbortSignal.none` as the default value when `options.abortSignal` is not specified.
|
384 | - Basic HTTP proxy authentication support is added. Proxy settings can be passed in the options while creating a new client. Example - [typescript/proxyAuth.ts](https://github.com/Azure/azure-sdk-for-js/blob/@azure/storage-blob_12.0.0-preview.3/sdk/storage/storage-blob/samples/typescript/proxyAuth.ts)
|
385 | - Connection strings for explicit storage endpoints are supported. - [Configure Azure Storage connection strings](https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string#create-a-connection-string-for-an-explicit-storage-endpoint)
|
386 |
|
387 | ## 10.5.0 (2019-09-09)
|
388 |
|
389 | - Updated Azure Storage Service API version to 2019-02-02.
|
390 | - A new API `ServiceURL.submitBatch()` supports Blob Batch operation which allows multiple requests to be sent within a single request body.
|
391 | - Added support for customer provided encryption key.
|
392 | - Added support for rehydrate priority with additional option to methods `BlobURL.startCopyFromURL()` and `BlobURL.setTier()`.
|
393 | - APIs `BlobURL.startCopyFromURL()`, `BlockBlobURL.upload()`, `BlockBlobURL.commitBlockList()` and `PageBlobURL.create()` now support set the blob tier within the API call.
|
394 | - Responses for all APIs now return x-ms-client-request-id through `clientRequestId` that was passed in on the request from client-side.
|
395 | - Exposed options to accept CRC64 as a transactional data integrity mechanism for data transfer APIs.
|
396 |
|
397 | ## 10.4.1 (2019-08-28)
|
398 |
|
399 | - Added overloads of `generateBlobSASQueryParameters` functions to generate user delegation SAS.
|
400 | - `expiry` and `start` in `AccessPolicy` are now optional in `ContainerURL.setAccessPolicy` and `ContainerURL.getAccessPolicy`.
|
401 |
|
402 | ## 12.0.0-preview.2 (2019-08-06)
|
403 |
|
404 | - [Breaking] Aborter class is no longer exposed from the package. Use the package [@azure/abort-controller](https://www.npmjs.com/package/@azure/abort-controller) to pass an abort signal to any of the async operations.
|
405 | `AbortController.timeout(<milliseconds>)` can be utitlized as an abort signal.
|
406 | - Generalized the credential parameter in client constructors to support `{SharedKeyCredential | AnonymousCredential | TokenCredential}` credentials as a union type.
|
407 | - Storage service allows SAS connection string with SAS string and endpoints along with the Account connection string(account name, key and endpoint).
|
408 | In this preview, SAS connection string support is added to the existing connection string client constructors and static methods.
|
409 | - Account connection string example - `DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net`
|
410 | - SAS connection string example - `BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString`
|
411 | - SAS connection string is supported in both NodeJS and browser runtimes unlike the Account Connection String which is supported only in the NodeJS runtime.
|
412 |
|
413 | ## 10.4.0 (2019-07-30)
|
414 |
|
415 | - Updated Azure Storage Service API version to [2018-11-09](https://docs.microsoft.com/rest/api/storageservices/version-2018-11-09).
|
416 | - Improved comments for `BlockBlobURL.upload()`.
|
417 | - Exported `HttpRequestBody` type for who wants to implement a customized HTTP client.
|
418 | - Fixed a bug of `downloadBlobToBuffer()` and `downloadAzureFileToBuffer()` when provided offset is not 0.
|
419 | - Fixed a bug that `Aborter` cannot work during retry interval.
|
420 | - Fixed a bug that `Aborter` throws timeout error even though it succeeds of `BlockBlobUrl.download()`.
|
421 | - Fixed a bug that "err.code.toUpperCase is not a function" when retries in browser.
|
422 | - Export `RetryPolicyType`.
|
423 | - `Aborter` doesn't require `dom` as tsconfig lib requirement anymore for `Event` type.
|
424 | - Service SAS generation now supports snapshot access control from 2018-11-09 in `generateBlobSASQueryParameters()`.
|
425 | - Service SAS generation now supports snapshot access control from API version 2018-11-09 in `generateBlobSASQueryParameters()`.
|
426 | - A new API `PageBlobURL.uploadPagesFromURL()` allows pages in a page blob to be written using a range of another blob as a source. This permits synchronous server-side copies to be orchestrated for page blobs of any size.
|
427 | - A new API `AppendBlobURL.appendBlockFromURL()` commits a new block of data to the end of an append blob. Method uses a range of another blob as a source. This permits synchronous server-side copies to be orchestrated for append blobs of any size.
|
428 | - A new API `BlobURL.syncCopyFromURL()` allows a block blob to be copied synchronously using a URL as a source. This API has a maximum size of 256 MB and preserves metadata and block list.
|
429 | - A new API `ServiceURL.getUserDelegationKey()` added to get a key that can be used to generate a user delegation SAS (shared access signature).
|
430 | - Updated HTTP client from axios to node-fetch in Node.js runtime.
|
431 | - A new option `keepAliveOptions` added to parameter of `StorageURL.newPipeline()` which controls keep-alive configurations. Keep-alive is enabled by default.
|
432 |
|
433 | ## 12.0.0-preview.1 (2019-07-03)
|
434 |
|
435 | - [Breaking] Client types are renamed from *URL to *Client.
|
436 | BlobURL, BlockBlobURL, ContainerURL, ServiceURL, StorageURL to BlobClient, BlockBlobClient, ContainerClient, BlobServiceClient, StorageClient respectively.
|
437 | - [Breaking] Aborter parameters are now moved into option bags.
|
438 | - `abortSignal` attrubute(optional) in the option-bag of respective module has to be utitlized for the `Aborter.timeout(<milliseconds>)` functionality.
|
439 | - `Aborter.none` is the default value.
|
440 | - [Breaking] I- prefixes are removed from interface names
|
441 | - Example- `IBlobDownloadOptions` is updated to `BlobDownloadOptions`, the new names must to be used.
|
442 | - [Breaking] The static methods to create client types are removed. The functionality is moved into new instance methods added to the parent clients.
|
443 | - [Breaking] The telemetry strings have been updated.
|
444 | - `Azure-Storage/${SDK_VERSION}` is updated to `azsdk-js-storagefile/${SDK_VERSION}`.
|
445 | - [Breaking] withPipeline method is removed.
|
446 | - Async iterators with pagination support are added for listing methods
|
447 | - `listContainers()`, `listBlobsFlat()` and `listBlobsByHierarchy()`
|
448 | - Please refer to the samples for async iterators in the `samples` folder.
|
449 | - [Breaking] Methods that list segments(`listBlobFlatSegment()` and `listContainersSegment()`) are no longer exposed in public api.
|
450 | - [Breaking] High level convenience functions are moved into clients as their instance member function.
|
451 | - `uploadFileToBlockBlob()`, `uploadStreamToBlockBlob()` and `uploadBrowserDataToBlockBlob()` -> `BlockBlobClient.uploadFile()`, `BlockBlobClient.uploadStream()` and `BlockBlobClient.uploadBrowserData()` respectively
|
452 | - `downloadBlobToBuffer()` -> `BlobClient.downloadToBuffer()`
|
453 | - [Breaking] `StorageClient` is no longer exposed. `StorageClient.newPipeline()` static method is moved to the top level exported function `newPipeline()`.
|
454 | - [Breaking] `TokenCredential` has been renamed to `RawTokenCredential` to make way for the new `@azure/identity` library's `TokenCredential` interface.
|
455 | - [Breaking] Blob/Container member methods that manage leases are removed. A new type `LeaseClient` is added to manage leases.
|
456 | - Updated dependency `@azure/ms-rest-js` to `@azure/core-http`.
|
457 | - Constructor overloads added into client types so they can be constructed from a url and a pipeline/credential and connection string.
|
458 | - Constructors with overloads - `AppendBlobClient`, `BlobClient`, `BlobServiceClient`, `BlockBlobClient`, `ContainerClient` and `PageBlobClient`
|
459 | - Connection string method is supported only in Node.js (not browsers).
|
460 | - Creation/Deletion of child resources are duplicated to parent client type.
|
461 | - HTTP proxy support is added (Node.js only).
|
462 | - Please refer to the `proxyAuth.ts` sample in the `samples/v12/typescript` folder.
|
463 | - Request and response headers are now logged at INFO level, with sensitive data redacted.
|
464 | - `downloadToFile()` is added to `BlobClient`.
|
465 | - Exported `HttpRequestBody` type to allow implementation of a customized HTTP client.
|
466 |
|
467 | For release notes and more information please visit https://aka.ms/azsdk/releases/july2019preview
|
468 |
|
469 | ## 10.3.0 (2018-12-27)
|
470 |
|
471 | - [Breaking] Updated convenience layer methods enum type parameters into typescript union types, this will help reducing bundle footprint.
|
472 | - [Breaking] Updated URL encoding strategy for `url` parameters of `new XXXURL(url, pipeline)` methods, such as `new BlobURL(url, pipeline)`.
|
473 | - URL will accept both encoded or non-encoded URL string. It will escape non-escaped special characters, like Chinese characters. However, if blob name includes `?` or `%`, `url` must be encoded manually.
|
474 | - [Breaking] `SASQueryParameters` is not going to be exported in browser bundle, and will be exported in Node.js runtime.
|
475 | - [Breaking] IE11 needs `Array.prototype.includes` and `Object.keys` polyfills loaded.
|
476 | - Updated dependency `ms-rest-js` to `@azure/ms-rest-js`.
|
477 | - Fixed `Aborter.timeout()` misleading scale description.
|
478 | - Added option `maxSingleShotSize` to customize concurrency upload threshold in bytes for highlevel uploading APIs, like `uploadBrowserDataToBlockBlob` or `uploadFileToBlockBlob`.
|
479 | - Removed default 60s server timeout value for retry options `tryTimeoutInMs` to avoid large blob download stream unexcepted ending.
|
480 | - Fixed an issue that when body is string with special characters, `BlockBlobULR.upload` will fail to upload.
|
481 |
|
482 | ## 10.2.0-preview (2018-11-27)
|
483 |
|
484 | - [Breaking] Updated names of exported interfaces `IHTTPPipelineLogger` & `IHTTPClient` to `IHttpPipelineLogger` & `IHttpClient`.
|
485 | - [Breaking] For `setMetadata()` and `setHTTPHeaders()`, `metadata` and `blobHTTPHeaders` are moved from `options` into top level parameter list.
|
486 | - Fixed bugs and typos in samples.
|
487 | - Fixed a bug during generateAccountSASQueryParameters() that generated signature is not valid.
|
488 | - Fixed a bug during generateBlobSASQueryParameters() that cache-control, content-type, content-disposition, content-encoding and content-language are not supported.
|
489 | - Fixed a bug in SAS generation that start and expiry time format is not correct.
|
490 | - Removed `File` from `uploadBrowserDataToBlockBlob` parameter type list, because `File` extends `Blob` which is already in the list.
|
491 | - Fixed typos in `IRange` comments.
|
492 | - Removed useless `marker` field from option of `ServiceURL.listContainersSegment` method.
|
493 | - Fixed a bug that `timeout` parameter should use second as unit instead of millisecond.
|
494 | - Added stream retry when `BlobURL.download` response stream unexcepted ends.
|
495 |
|
496 | ## 10.1.0-preview (2018-09-29)
|
497 |
|
498 | - Fixed sharedkey authentication error when blob names have spaces.
|
499 | - Updated samples in readme and sample folder to fix undefined headers.
|
500 | - Updated readme samples to make it runnable as copy/paste.
|
501 | - More documentation around ACCOUNT_SAS and CORS in readme.md and contributing.md.
|
502 | - Size of browser bundle is reduced from 229KB to 175KB (minified version). Thanks Brian Terlson & Rikki Gibson!
|
503 | - Set `sideEffects` option to `true` in package.json, which helps webpack4 for tree shaking.
|
504 | - Updated `browser` and `module` option in package.json, webpack will try to load ES6 module.
|
505 | - Added prettier config file.
|
506 | - Fixed typos and unused imports.
|
507 | - [Breaking] Dropped built-in polyfills for `String`, and following polyfills need to be loaded external for IE11 now:
|
508 | - `Promise`
|
509 | - `String.prototype.startsWith`
|
510 | - `String.prototype.endsWith`
|
511 | - `String.prototype.repeat`
|
512 | - `String.prototype.includes`
|
513 | - [Breaking] `Aborter.None` is renamed to `Aborter.none` for JavaScript naming conventions.
|
514 |
|
515 | ## 10.0.0-preview (2018-09-10)
|
516 |
|
517 | - Initial Release. API version 2018-03-28 supported. Please see the README for information on the new design.
|
518 |
|
\ | No newline at end of file |