- Added support for service version 2023-11-03.
- Added method to generate audience for blob servcie for a storage account.
- Includes all features released in 12.16.0-beta.1.
- Added support for service version 2023-08-03.
- Added rehydrate-pending-to-cold value to ArchiveStatus enum.
- Includes all features released in 12.15.0.
- Added support for service version 2023-01-03.
- Includes all features released in 12.14.0-beta.1.
- Fixed an issue of: StoragePipelineOptions is not passed into constructors for blob clients correctly when using undefined as credential parameter.
- Added support for service version 2022-11-02.
- Includes all features released in 12.13.0-beta.1.
- Added BlobDownloadHeaders.createdOn property for interface BlobClient.Download().
- Fixed an issue of getting 403 error for file or directory name with './' or '../'
- Added support for service version 2021-12-02.
- Added support for Blob Cold Tier.
- Fixed bug where IncrementalCopyOfEarlierVersionSnapshotNotAllowed was spelled incorrectly.
- Update dependency
@azure/core-http
version to^3.0.0
.
- Includes all features released in 12.12.0-beta.1.
- Fixed an issue of escaping slashes in blob name unnecessarily.
- Added support for service version 2021-10-04.
- Fixed a hang issue in BlobClient.downloadToBuffer when encountering transient network failure.
- Refined URL parsing method to let it be able to correctly parse URLs with account name in path.
- Includes all features released in 12.11.0-beta.1.
- Added support for service version 2021-08-06.
- Includes all features released in 12.10.0-beta.1.
- Refined user-agent value to avoid failure when os information is not available on some platforms.
- Fix an issue of not returning raw blob properties in ContainerClient.listBlobsFlat() and ContainerClient.listBlobsByHierarchy().
- Added support for service version 2021-06-08.
- Added pageable output of PageBlobClient.listPageRanges() and PageBlobClient.listPageRangesDiff().
- Added ability to copy source blob tags for BlobClient.syncCopyFromURL().
- Fix incorrect browser mapping path for BufferScheduler.js
- Add
react-native
mapping to ESM entrypoint
- 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.
- Fixed an issue of always sending x-ms-encryption-algorithm header in request.
- Added ability to specify Disk Compute AAD Audience in StoragePipelineOptions.
- Set correct content length in requests for uploading operations to avoid unexpected failure if customized content length is incorrect.
- Added support for service version 2021-04-10.
- Added support for finding blobs by tags in a container.
- Fixed a bug where customized
ProxyOptions
is overwrited by a default one when initializingBlobServiceClient
,BlobClient
,AppendBlobClient
,BlockBlobClient
,PageBlobClient
orContainerClient
with connection string.
- Added support for service version 2021-02-12
- Added support for listing system containers with
BlobServiceClient.listContainers()
. - Added support for blob names container invalid XML characters.
- Added support for service version 2020-12-06.
- Added support for Encryption Scope SAS.
- Added support for Encryption Scopes with BlobBaseClient.SyncCopyFromUriAsync().
- Added support for generating SAS URLs with the Permanent Delete ('y') SAS permission.
- Includes all features released in 12.8.0-beta.1.
- Support for Node.js 8 and IE 11 has been dropped. Please see our support policy for more details.
- Changed TS compilation target to ES2017 in order to produce smaller bundles and use more native platform features
- 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.
- Added support for service version 2020-10-02.
- Added support for Immutable Storage with Versioning
- Added BlobClient.setImmutibilityPolicy()
- Added BlobClient.seleteImmutabilityPolicy()
- Added BlobClient.setLegalHold()
- Added support for listing deleted root blobs with versions
ContainerClient.listBlobFlat()
andContainerClient.listBlobHierarchy()
. - Added support for OAuth copy sources for synchronous copy operations.
- Added support for Parquet as an input format in
BlockBlobClient.query()
. - 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 for more details.
- Includes all features released in 12.6.0-beta.1.
- Updated Azure Storage Service API version to 2020-08-04.
- Restoring deleted container doesn't support renaming anymore, deprecated
destinationContainerName
inServiceUndeleteContainerOptions
forBlobServiceClient.undeleteContainer()
.
- Includes all features released in 12.5.0-beta.1.
- Now support Batch operations scoped to the Container level. You can use
ContainerClient.getBlobBatchClient()
to get such aBlobBatchClient
.
- Fixed a compile failure due to "Can't resolve 'crypto'" in Angular. Issue #13267.
- Fixed an issue that the download stream returned by
BlobClient.download
won't release underlying resources unless it's fully consumed. Isssue #11850. - Fixed an error when listing blob with a metadata key of
_
issue #9197 - The
"Unclosed root tag"
XML parser error is now retriable. PR #13076.
- Added a new
from(permissionLike)
function toAccountSASPermissions
,BlobSASPermissions
andContainerSASPermissions
for creating such a permission from a raw permission-like object. Addressed issue 9714.
- Updated Azure Storage Service API version to 2020-04-08.
- 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. - Blob Tags updates:
BlobClient.setTags()
andBlobClient.getTags()
now support theLeaseAccessConditions
andBlobServiceClient.findBlobsByTags()
will return all matching tags for each blob. - Added
generateSasUrl
toBlobClient
andContainerClient
to generate a service-level SAS URI for the client. - Added
generateAccountSasUrl
toBlobServiceClient
to generate an account-level SAS URI for the client. - Fixed a bug where the
credential
property of theStorageClient
is not set correctly when using a Token credential. Fixed bug 12219. - Blob Batch operations now reorder the subresponses in the client side to perserve the original input order. See
BlobBatchClient.submitBatch()
and 12335. - Won't remove the first space in the
userAgentOptions.userAgentPrefix
passed to thenewPipeline()
now. Fixed bug 7536. - Added
isHierarchicalNamespaceEnabled
to the response ofBlobServiceClient.getAccountInfo()
.
- Added
BlockBlobClient.uploadData(data: Buffer | Blob | ArrayBuffer | ArrayBufferView, options)
for parallel uploading. It's avaiable in both Node.js and browsers. - 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 viascid
for user delegation SAS.
- Updated Azure Storage Service API version to 2020-02-10.
- Added support for Blob Last Access Time tracking.
- Added support for Blob Query Arrow output format.
- Added support for Container Soft Delete.
- Bug fix - Fixes an issue where
BlockBlobClient.uploadStream()
will give an "Invalid Verb" error when keep-alive is enabled. Fixed bug 11187.
- Added RehydratePriority to BlobProperties and BlobItemProperties.
- Fixed
BlockBlobClient.uploadStream()
to supportbufferSize
larger thanbuffer.constants.MAX_LENGTH
. - Added support for Object Replication Service.
- Added custom domain support.
- Supported Append Blob Seal.
- Supported tags conditional operations.
- 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 viablobServiceClient.setProperties()
. - Bug fix -
credential
parameter ofnewPipeline()
function is now optional. If not specified,AnonymousCredential
is used. Fixes bug 9628. - Bug fix - high level upload functions
BlockBlobClient.uploadFile()
,BlockBlobClient.uploadStream()
andBlockBlobClient.uploadBrowserData()
now support setting tier. Fixes bug 9062. - Optimized error semantic for
listBlobsByHierarchy()
. UsinglistBlobsByHierarchy()
with emptydelimiter
will now fail-fast. - Bug fix - Content-Length header is no more ignored. Fixes bugs 8903, 9300 and 10614.
- Updated Azure Storage Service API version to 2019-12-12.
- Supported quick query. Added a new API
BlockBlobClient.query()
. - Supported blob versioning.
- Supported blob tags.
- Increased the maximum block size for Block Blob from 100MiB to 4000MiB(~4GB). And thereby supporting ~200TB maximum size for Block Blob.
- Added convenience method
createIfNotExists
forContainerClient
,AppendBlobClient
andPageBlobClient
. - Added convenience method
deleteIfExists
forContainerClient
andBlobClients
.
- Fix data corruption failure error issue #6411 when downloading compressed files. PR #7993
- Fix un-handled TypeError issue #8499 in Electron applications. PR #8568
- Updated to use
@opentelemetry/api
0.6.1 via@azure/core-tracing
. PR #7998 - Updated to use
typescript
3.8.3. PR #8659
- Bug fix - Blob SAS's
sr
field is now properly set when generating SAS for a blob using a stored policy withsignedpermissions
. For more details about Service SAS, please refer to link. - Fixed unexpected hang issue when uploading empty body. Fixed bug 6904.
- Updated Azure Storage Service API version to 2019-07-07.
- Add support for Encryption Scope, which is similar to regular CPK, except the encryption key is provided by name.
- MD5 and CRC headers for Blob Copy: add
contentMD5
andxMsContentCrc64
toBlobCopyFromURLHeaders
andsourceContentMD5
toBlobSyncCopyFromURLOptions
. - Add
getPageRangesDiffForManagedDisks
toPageBlobClient
. - Fixed a bug where the package didn't work as expected when bundling web applications. PR #7298
-
Bug fix - Name properties on clients now support more kinds of endpoints(IPv4/v6 hosts, single word domains). PR #6753
-
Service clients now share a single http client instance by default. PR #6657
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.
- Updated to use OpenTelemetry 0.2 via
@azure/core-tracing
- Bug Fix - Convert empty prefixes (
""
) toundefined
when passed as options to thelistContainers
,listBlobsFlat
, andlistBlobsByHierarchy
methods to avoid sending an invalid request to the service. Fixes bug 5817. - Added a warning to the documentation of
downloadToBuffer
that explains the limitations of Node.jsBuffer
sizes to around 2GB on 64-bit architectures and 1GB on 32-bit architectures. - 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 theincludeMetadata
option.
- This release marks the general availability of the
@azure/storage-blob
package. - Bug Fix - Previous versions of
@azure/storage-blob
preview library failed for React apps because of the usage offs.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. - [Breaking] The custom browser and retry policies that are specific to the Storage libraries have been
renamed to have the
Storage
prefix. PR 5862. Below are the entities that now have the Storage prefix- BrowserPolicy
- BrowserPolicyFactory
- RetryPolicy
- RetryPolicyType
- RetryOptions
- RetryPolicyFactory
- [Breaking]
LeaseClient
is renamed toBlobLeaseClient
. The helper methodgetLeaseClient
on bothBlobClient
andContainerClient
is renamed togetBlobLeaseClient
. - [Breaking] The properties in the
StoragePipelineOptions
interface have been updated as below:- The
proxy
property of typeProxySettings | string
has been renamed toproxyOptions
and will be of typeProxyOptions
. If you have been passing url directly, split the value intohost
andport
then pass it as a json object. - The
telemetry
property of typeTelemetryOptions
has been renamed touserAgentOptions
of typeUserAgentOptions
. - The
logger
is no longer a property available to configure. To enable logging, please see the Troubleshooting section of our readme. - The
UniqueRequestIdPolicy
andKeepAlivePolicy
are no longer exported from this library. The corresponding policies from the@azure/core-http
library are meant to be used instead.
- The
beginCopyFromURL
is added to theBlobClient
, it returns a poller that can be used to watch the status of a copy operation. It also supports cancelling a pending copy.- Updates to
BlockBlobClient.uploadStream
- [Breaking]
maxBuffers
attribute of is renamed tomaxConcurrency
- Added default values for parameters, bufferSize =
8MB
and maxConcurrency =5
- [Breaking]
- [Breaking] Bug Fix - The page object returned from
ContainerClient.listContainers
had itscontainerItems
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. BlobClient.downloadToBuffer()
helper method has a new overload where it is not required to pass theBuffer
. Attributesoffset
andcount
are optional, downloads the entire blob if they are not provided.- [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.
-
[Breaking]
IPRange
is renamed toSasIPRange
. PR #5551 -
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 -
[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 withModel
suffix. PR #5567 -
[Breaking] Cancelling an operation now throws a standardized error with the name
AbortError
. PR #5633 -
[Breaking]
blobName
onAppendBlobClient
,BlobClient
,BlockBlobClient
andPageBlobClient
is renamed toname
. PR #5613 -
[Breaking] New
BlobBatchClient
allowing batched requests to the Azure Storage Blob service. PR #5634- Renamed
BatchRequest
toBlobBatch
, flattenedBatchDeleteRequest
andBatchSetTierRequest
intoBlobBatch
- Moved
submitBatch
code fromBlobServiceClient
into newBlobBatchClient
, created newdeleteBlobs
andsetBlobsAccessTier
helpers onBlobBatchClient
BlobBatchClient
containssetBlobsAccessTier
,submitBatch
anddeleteBlobs
helper methods.BlobBatch
represents an aggregated set of operations on blobs,delete
andsetAccessTier
functionalities are supported currently.
- Renamed
-
[Breaking] Flattened the conditions type
BlobRequestConditions
instead of current nested one. It replacesContainerAccessConditions
andBlobAccessConditions
. In addition, various conditions fields are renamed into simplyconditions
exceptsourceModifiedAccessConditions
which is renamed tosourceConditions
. This makes it more convenient to pass in conditional request options. PR #5672.An example:
{ blobAccessConditions: { modifiedAccessConditions: { ifMatch: uploadResponse.eTag } }
turns into
{ conditions: { ifMatch: uploadResponse.eTag }
-
[Breaking]
eTag
attribute is renamed toetag
. PR #5674 -
[Breaking]
body
field fromRestError
Object in core-http Library is removed, theresponse
property on the error will now have theparsedBody
&headers
along with raw body & headers that are already present. PRs #5670, #5437- Errors from the storage service can be seen in an extra field
details
with the expected error code. #5688
- Errors from the storage service can be seen in an extra field
-
[Breaking]
progress
callback in the option bags of all the helper methods is renamed toonProgress
. PR #5676 -
[Breaking] Consolidated
PageRange
andClearRange
types. They now haveoffset
andcount
attributes as opposed to the olderstart
andend
attributes. PR #5632 -
[Breaking] Type of the
permissions
attribute in the options bagBlobSASSignatureValues
to be passed intogenerateBlobSASQueryParameters
is changed toBlobSASPermissions
from typestring
. PR #5626- Similarly,
AccountSASPermissions
forgenerateAccountSASQueryParameters
instead of typestring
. - Example - permissions attribute in
generateBlobSASQueryParameters
permissions: BlobSASPermissions.parse("racwd").toString()
changes toBlobSASPermissions.parse("racwd")
- Similarly,
-
Renames for following Options interfaces. PR #5650
DownloadFromBlobOptions
->BlobDownloadToBufferOptions
,UploadStreamToBlockBlobOptions
->BlockBlobUploadStreamOptions
,UploadToBlockBlobOptions
->BlockBlobParallelUploadOptions
-
[Breaking] Appropriate attribute renames in all the interfaces. PRs #5580,#5630
- Example -
nextMarker
->continuationToken
,HTTPClient
->HttpClient
,permission
->permissions
,parallelism
->concurrency
- Example -
-
Bug fix - Name properties on clients now support the Emulator. PR #5557
- emulator url when the blobEndpoint is
http://127.0.0.1:10000/devstoreaccount1
supported - emulator connection string shorthands are supported
UseDevelopmentStorage=true
- (with proxyURI)
UseDevelopmentStorage=true;DevelopmentStorageProxyUri=proxyURI
- emulator url when the blobEndpoint is
-
[Breaking]
encrypted
attribute is removed fromBlobMetadata
interface. PR #5612 -
[Breaking] Return type of
downloadToBuffer
helper method onBlobClient
is changed toPromise<Buffer>
fromPromise<void>
PR #5624 -
[Breaking] IE11 needs
Object.assign
polyfill loaded. PR #5727
- [Breaking] Replace string array with boolean flags to specify dataset to include when listing containers or blobs.
- For listing containers
Before this change the option is specified as
After this change:
blobServiceClient.listContainers({ include: "metadata", });
blobServiceClient.listContainers({ includeMetadata: true, });
- For listing blobs
Before this change the option is specified as
After this change:
containerClient.listBlobsFlat({ include: ["snapshots", "metadata", "uncommittedblobs", "copy", "deleted"], });
containerClient.listBlobsFlat({ includeCopy: true, includeDeleted: true, includeMetadata: true, includeSnapshots: true, includeUncommitedBlobs: true, });
- For listing containers
Before this change the option is specified as
- [Breaking]
BlobClient.setTier()
is renamed toBlobClient.setAccessTier()
. - [Breaking] Fixed typo -
chanageLease
->changeLease
, a method onLeaseClient
. - 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
orBlobClient
are instantiated. - Added development connection string support to connect to the storage emulator Azurite - Extension for VS Code
- Development Connection String
DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
- Shorthand notation is also supported
UseDevelopmentStorage=true
(orUseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://myProxyUri
)
- Development Connection String
- Added name properties on all the clients for convenience.
accountName
is added toAppendBlobClient
,BlobClient
,BlobServiceClient
,BlockBlobClient
,ContainerClient
andPageBlobClient
.containerName
is added toAppendBlobClient
,BlobClient
,BlockBlobClient
,ContainerClient
andPageBlobClient
.blobName
is added toAppendBlobClient
,BlobClient
,BlockBlobClient
andPageBlobClient
.
- [Breaking]
Models.StorageServiceProperties
is renamed toModels.BlobServiceProperties
- [Breaking]
Models.StorageServiceStats
is renamed toModels.BlobServiceStatistics
- [Breaking]
UserDelegationKey.signedOid
is renamed toUserDelegationKey.signedObjectId
.UserDelegationKey.signedTid
is renamed toUserDelegationKey.signedTenantId
.
- [Breaking]
RawTokenCredential
is dropped. TokenCredential implementations can be found in the @azure/identity library for authentication. - Updated Azure Storage Service API version to 2019-02-02.
- A new API
BlobServiceClient.submitBatch()
supports Blob Batch operation which allows multiple requests to be sent within a single request body. - Added support for customer provided encryption key.
- Added support for rehydrate priority with additional option to methods
BlobClient.startCopyFromURL()
andBlobClient.setTier()
. - APIs
BlobClient.startCopyFromURL()
,BlockBlobClient.upload()
,BlockBlobClient.commitBlockList()
andPageBlobClient.create()
now support set the blob tier within the API call. - Responses for all APIs now return x-ms-client-request-id through
clientRequestId
that was passed in on the request from client-side. - Exposed options to accept CRC64 as a transactional data integrity mechanism for data transfer APIs.
- Added overloads of
generateBlobSASQueryParameters
functions to generate user delegation SAS. expiry
andstart
inAccessPolicy
are now optional inContainerClient.setAccessPolicy
andContainerClient.getAccessPolicy
.- Exported
HttpRequestBody
type for who wants to implement a customized HTTP client. - Fixed a bug of
BlobClient.downloadToBuffer()
when provided offset is not 0. - Fixed a bug that
Aborter
cannot work during retry interval. - Fixed a bug that
Aborter
throws timeout error even though it succeeds ofBlockBlobClient.download()
. - Fixed a bug that "err.code.toUpperCase is not a function" when retries in browser.
- Export
RetryPolicyType
. Aborter
doesn't requiredom
as tsconfig lib requirement anymore forEvent
type.- Service SAS generation now supports snapshot access control from 2018-11-09 in
generateBlobSASQueryParameters()
. - Service SAS generation now supports snapshot access control from API version 2018-11-09 in
generateBlobSASQueryParameters()
. - 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. - 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. - 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. - A new API
BlobServiceClient.getUserDelegationKey()
added to get a key that can be used to generate a user delegation SAS (shared access signature). - Updated HTTP client from axios to node-fetch in Node.js runtime.
- A new option
keepAliveOptions
added to parameter ofnewPipeline()
which controls keep-alive configurations. Keep-alive is enabled by default. - Pass through
options.abortSignal
to the optionalabortSignal
attribute in option bags instead of usingAbortSignal.none
as the default value whenoptions.abortSignal
is not specified. - Basic HTTP proxy authentication support is added. Proxy settings can be passed in the options while creating a new client. Example - typescript/proxyAuth.ts
- Connection strings for explicit storage endpoints are supported. - Configure Azure Storage connection strings
- Updated Azure Storage Service API version to 2019-02-02.
- A new API
ServiceURL.submitBatch()
supports Blob Batch operation which allows multiple requests to be sent within a single request body. - Added support for customer provided encryption key.
- Added support for rehydrate priority with additional option to methods
BlobURL.startCopyFromURL()
andBlobURL.setTier()
. - APIs
BlobURL.startCopyFromURL()
,BlockBlobURL.upload()
,BlockBlobURL.commitBlockList()
andPageBlobURL.create()
now support set the blob tier within the API call. - Responses for all APIs now return x-ms-client-request-id through
clientRequestId
that was passed in on the request from client-side. - Exposed options to accept CRC64 as a transactional data integrity mechanism for data transfer APIs.
- Added overloads of
generateBlobSASQueryParameters
functions to generate user delegation SAS. expiry
andstart
inAccessPolicy
are now optional inContainerURL.setAccessPolicy
andContainerURL.getAccessPolicy
.
- [Breaking] Aborter class is no longer exposed from the package. Use the package @azure/abort-controller to pass an abort signal to any of the async operations.
AbortController.timeout(<milliseconds>)
can be utitlized as an abort signal. - Generalized the credential parameter in client constructors to support
{SharedKeyCredential | AnonymousCredential | TokenCredential}
credentials as a union type. - Storage service allows SAS connection string with SAS string and endpoints along with the Account connection string(account name, key and endpoint).
In this preview, SAS connection string support is added to the existing connection string client constructors and static methods.
- Account connection string example -
DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net
- 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
- SAS connection string is supported in both NodeJS and browser runtimes unlike the Account Connection String which is supported only in the NodeJS runtime.
- Account connection string example -
- Updated Azure Storage Service API version to 2018-11-09.
- Improved comments for
BlockBlobURL.upload()
. - Exported
HttpRequestBody
type for who wants to implement a customized HTTP client. - Fixed a bug of
downloadBlobToBuffer()
anddownloadAzureFileToBuffer()
when provided offset is not 0. - Fixed a bug that
Aborter
cannot work during retry interval. - Fixed a bug that
Aborter
throws timeout error even though it succeeds ofBlockBlobUrl.download()
. - Fixed a bug that "err.code.toUpperCase is not a function" when retries in browser.
- Export
RetryPolicyType
. Aborter
doesn't requiredom
as tsconfig lib requirement anymore forEvent
type.- Service SAS generation now supports snapshot access control from 2018-11-09 in
generateBlobSASQueryParameters()
. - Service SAS generation now supports snapshot access control from API version 2018-11-09 in
generateBlobSASQueryParameters()
. - 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. - 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. - 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. - A new API
ServiceURL.getUserDelegationKey()
added to get a key that can be used to generate a user delegation SAS (shared access signature). - Updated HTTP client from axios to node-fetch in Node.js runtime.
- A new option
keepAliveOptions
added to parameter ofStorageURL.newPipeline()
which controls keep-alive configurations. Keep-alive is enabled by default.
- [Breaking] Client types are renamed from *URL to *Client. BlobURL, BlockBlobURL, ContainerURL, ServiceURL, StorageURL to BlobClient, BlockBlobClient, ContainerClient, BlobServiceClient, StorageClient respectively.
- [Breaking] Aborter parameters are now moved into option bags.
abortSignal
attrubute(optional) in the option-bag of respective module has to be utitlized for theAborter.timeout(<milliseconds>)
functionality.Aborter.none
is the default value.
- [Breaking] I- prefixes are removed from interface names
- Example-
IBlobDownloadOptions
is updated toBlobDownloadOptions
, the new names must to be used.
- Example-
- [Breaking] The static methods to create client types are removed. The functionality is moved into new instance methods added to the parent clients.
- [Breaking] The telemetry strings have been updated.
Azure-Storage/${SDK_VERSION}
is updated toazsdk-js-storagefile/${SDK_VERSION}
.
- [Breaking] withPipeline method is removed.
- Async iterators with pagination support are added for listing methods
listContainers()
,listBlobsFlat()
andlistBlobsByHierarchy()
- Please refer to the samples for async iterators in the
samples
folder.
- [Breaking] Methods that list segments(
listBlobFlatSegment()
andlistContainersSegment()
) are no longer exposed in public api. - [Breaking] High level convenience functions are moved into clients as their instance member function.
uploadFileToBlockBlob()
,uploadStreamToBlockBlob()
anduploadBrowserDataToBlockBlob()
->BlockBlobClient.uploadFile()
,BlockBlobClient.uploadStream()
andBlockBlobClient.uploadBrowserData()
respectivelydownloadBlobToBuffer()
->BlobClient.downloadToBuffer()
- [Breaking]
StorageClient
is no longer exposed.StorageClient.newPipeline()
static method is moved to the top level exported functionnewPipeline()
. - [Breaking]
TokenCredential
has been renamed toRawTokenCredential
to make way for the new@azure/identity
library'sTokenCredential
interface. - [Breaking] Blob/Container member methods that manage leases are removed. A new type
LeaseClient
is added to manage leases. - Updated dependency
@azure/ms-rest-js
to@azure/core-http
. - Constructor overloads added into client types so they can be constructed from a url and a pipeline/credential and connection string.
- Constructors with overloads -
AppendBlobClient
,BlobClient
,BlobServiceClient
,BlockBlobClient
,ContainerClient
andPageBlobClient
- Connection string method is supported only in Node.js (not browsers).
- Constructors with overloads -
- Creation/Deletion of child resources are duplicated to parent client type.
- HTTP proxy support is added (Node.js only).
- Please refer to the
proxyAuth.ts
sample in thesamples/v12/typescript
folder.
- Please refer to the
- Request and response headers are now logged at INFO level, with sensitive data redacted.
downloadToFile()
is added toBlobClient
.- Exported
HttpRequestBody
type to allow implementation of a customized HTTP client.
For release notes and more information please visit https://aka.ms/azsdk/releases/july2019preview
- [Breaking] Updated convenience layer methods enum type parameters into typescript union types, this will help reducing bundle footprint.
- [Breaking] Updated URL encoding strategy for
url
parameters ofnew XXXURL(url, pipeline)
methods, such asnew BlobURL(url, pipeline)
.- 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.
- 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
- [Breaking]
SASQueryParameters
is not going to be exported in browser bundle, and will be exported in Node.js runtime. - [Breaking] IE11 needs
Array.prototype.includes
andObject.keys
polyfills loaded. - Updated dependency
ms-rest-js
to@azure/ms-rest-js
. - Fixed
Aborter.timeout()
misleading scale description. - Added option
maxSingleShotSize
to customize concurrency upload threshold in bytes for highlevel uploading APIs, likeuploadBrowserDataToBlockBlob
oruploadFileToBlockBlob
. - Removed default 60s server timeout value for retry options
tryTimeoutInMs
to avoid large blob download stream unexcepted ending. - Fixed an issue that when body is string with special characters,
BlockBlobULR.upload
will fail to upload.
- [Breaking] Updated names of exported interfaces
IHTTPPipelineLogger
&IHTTPClient
toIHttpPipelineLogger
&IHttpClient
. - [Breaking] For
setMetadata()
andsetHTTPHeaders()
,metadata
andblobHTTPHeaders
are moved fromoptions
into top level parameter list. - Fixed bugs and typos in samples.
- Fixed a bug during generateAccountSASQueryParameters() that generated signature is not valid.
- Fixed a bug during generateBlobSASQueryParameters() that cache-control, content-type, content-disposition, content-encoding and content-language are not supported.
- Fixed a bug in SAS generation that start and expiry time format is not correct.
- Removed
File
fromuploadBrowserDataToBlockBlob
parameter type list, becauseFile
extendsBlob
which is already in the list. - Fixed typos in
IRange
comments. - Removed useless
marker
field from option ofServiceURL.listContainersSegment
method. - Fixed a bug that
timeout
parameter should use second as unit instead of millisecond. - Added stream retry when
BlobURL.download
response stream unexcepted ends.
- Fixed sharedkey authentication error when blob names have spaces.
- Updated samples in readme and sample folder to fix undefined headers.
- Updated readme samples to make it runnable as copy/paste.
- More documentation around ACCOUNT_SAS and CORS in readme.md and contributing.md.
- Size of browser bundle is reduced from 229KB to 175KB (minified version). Thanks Brian Terlson & Rikki Gibson!
- Set
sideEffects
option totrue
in package.json, which helps webpack4 for tree shaking. - Updated
browser
andmodule
option in package.json, webpack will try to load ES6 module. - Added prettier config file.
- Fixed typos and unused imports.
- [Breaking] Dropped built-in polyfills for
String
, and following polyfills need to be loaded external for IE11 now:Promise
String.prototype.startsWith
String.prototype.endsWith
String.prototype.repeat
String.prototype.includes
- [Breaking]
Aborter.None
is renamed toAborter.none
for JavaScript naming conventions.
- Initial Release. API version 2018-03-28 supported. Please see the README for information on the new design.