UNPKG

38.8 kBMarkdownView Raw
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
467For 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