Releases: Azure/azure-storage-cpp
Releases · Azure/azure-storage-cpp
Storage Client Library v2.4.0
Changes in v2.4:
- Added support for file service: file client, file share, file directory and file.
- Performance improvements with URI cache, string concat, uri builder parameters.
- Fixed the bug that cloud_blob_container didn't exported by dll.
- Fixed the bug that xml parser for table's error message.
- Fixed the bug that copying blob from other accounts doesn't use source credentials.
- Fixed the bug that network took too long time to close while network error happened.
- Fixed the bug that blob name with reserved characters didn't split with right order.
- Fixed the but that blob properties didn't clear after deletion.
- Fixed the coding style for static string to prevent ODR issue.
- Fixed the build issue on OS X, but not officially supporting OS X.
Storage Client Library v2.3.0
Changes in v2.3:
- Added the following interfaces to support programmatically configurable HTTP/HTTPS proxy
- operation_context::set_default_proxy
- operation_context::set_proxy
- Upgraded Casablanca dependency to 2.8.0
- Fixed a bug that the retry policy of a default service client request options is not used
Storage Client Library v2.2.0
Changes in v2.2:
- Default REST API version is 2015-04-05
- Supported account SAS
- Supported IP ACL and HTTP protocol in account/service SAS
- Introduced add permission for blob SAS
- Upgraded Casablanca dependency to 2.7.0
- Added Microsoft Visual C++ compiler version to user agent string if MSVC is used to compile.
- Fixed a bug that cloud_block_blob::upload_block_list_async method doesn't respect use_transactional_md5 field
Storage Client Library v2.1.0
Changes in v2.1:
• Upgraded Casablanca dependency to 2.6.0
• Added support for Visual Studio 2015, dropped support for Visual Studio 2012
• Separated Nuget packages to wastorage.v120 and wastorage.v140. For backwards compatibility, wastorage became an umbrella package which has both packages as dependencies.
• Retired CoApp autopkg. Nuget.exe and nuspec files are used to generate Nuget packages.
• Fixed an issue that MSBuild must run twice to first download Nuget packages then compile.
Storage Client Library v2.0.0
Changes in v2.0:
- Default REST API version is 2015-02-21
- Added cloud_append_blob class, which supports the new blob type: append blob.
- Added support of ranged-based for-loop for result_iterator class
- Changed behavior to stop stripping out query parameters passed in with the resource URI. Some query parameters such as comp, restype, snapshot and api-version will still be removed.
- Deprecated cloud_blob::start_copy_from_blob and cloud_blob::start_copy_from_blob_async. Use cloud_blob::start_copy instead.
- Fixed the bug that cloud_table::execute(const table_operation&) method doesn't respect cloud_table_client::default_request_options.
Storage Client Library v1.0.0
Changes in v1.0:
- Changed return value type of cloud_blob_client::list_blobs_segmented, cloud_blob_container::list_blobs_segmented and cloud_blob_directory::list_blobs_segmented methods from blob_result_segment to list_blob_item_segment
- Removed type blob_result_segment
- Redefined following types using result_segment template:
- queue_result_segment
- table_result_segment
- table_query_segment
- Added following functions which retrieve results from service lazily:
- cloud_blob_client::list_containers
- cloud_blob_client::list_blobs
- cloud_blob_container::list_blobs
- cloud_blob_directory::list_blobs
- cloud_queue_client::list_queues
- cloud_table_client::list_tables
- cloud_table::execute_query
- Updated unit test project and unit test guidance to refer to UnitTest++ in GitHub.
Storage Client Library v0.6.0
Changes in v0.6:
- Fixed the bug that cloud_blob::download_range_to_stream corrupted downloaded data if retry succeeded after a failed request
- Fixed the bug that cloud_blob::download_range_to_stream might access the target stream after the call completed and led to access violation under a race condition
- Changed waiting between retries asynchronous on Linux
- Changed constructors not intended for public use to private for cloud_blob, cloud_block_blob and cloud_page_blob classes
- Added move constructors and move assignment operators to many classes for Visual Studio 2012 and 2013
- Changed table_entity::set_timestamp to a private method as timestamp is read-only
- User headers in operation context now overwrite existing header values
- Removed following listing functions as they don't work well under a large scale. Please use segmented listing functions such as cloud_queue_client::list_queues_segmented instead
- cloud_queue_client::list_queues
- cloud_queue_client::list_queues_async
- cloud_table_client::list_tables
- cloud_table_client::list_tables_async
- cloud_table::execute_query
- cloud_table::execute_query_async
- Upgraded Casablanca dependency to 2.4.0
Storage Client Library v0.5.0
Changes in v0.5:
- Default REST API version is 2014-02-14
- Added parameter sequence_number to the following functions:
- cloud_page_blob::create_async
- cloud_page_blob::open_write_async
- cloud_page_blob::upload_from_stream_async
- cloud_page_blob::upload_from_file_async
- cloud_page_blob::create
- cloud_page_blob::open_write
- cloud_page_blob::upload_from_stream
- cloud_page_blob::upload_from_file
- The client checks blob lease times and throws std::invalid_argument for invalid lease times. Previously, this would have been checked on the service and azure::storage::storage_exception would have been thrown.
- Improvements on error handling:
- azure::storage::storage_exception now has inner_exception populated with the actual underlying exception thrown
- azure::storage::storage_exception now has more information about errors on storage service side
- was/error_code_strings.h is added including messages for all possible error codes from storage service
- Improvements on Unit Tests:
- All test cases now print out test name and client reqeust ID
- Added new cases for containers listing and continuation token
- Unit Test configuraiton file is copied to output directory via CMake now, so no need to copy it manually under Linux
- Several fixes for bugs:
- Cannot generate SAS tokens for tables with upper-case letters in table name
- cloud_blob_istreambuf and cloud_blob_ostreambuf is set to a wrong position after seek() method is called.
- Content-MD5 header is incorrectly set when sending Put Page requests with page-write set to clear
Storage Client Library v0.4.0
Changes in v0.4:
- Now supports building on Linux
- Added http_buffer_size request option to control the internal buffer size used in the HTTP layer when downloading data. The default size is 64KB.
- Blob downloads that are interrupted resume automatically from where the download left off when being retried.
- Performance improvement when uploading and downloading blobs.
- Added const version of the operation_context::user_headers() function.
- Fixed incorrect initialization of some members in the cloud_blob_container_properties and retry_info classes.
- Added a default of 24 days for a maximum execution time for an operation
- Changed the exception type if you upload a blob from a seekable stream but the stream is too short for the desired blob length.
- Used to throw azure::storage::storage_exception in some cases, now throws std::invalid_argument always.
- Now checks for this case explicitly before the upload is started.
- Non-seekable streams still throw std::invalid_argument as before.
- Fixed several bugs, including incorrect uses of std::move and compile-time differences between Visual Studio and g++.
- Added client request ID into log lines.
- Upgraded Casablanca dependency to 2.3.0
Storage Client Library v0.3.0
Changes in v0.3:
- Changed namespace to azure::storage.
- Added support for secondary location access in Azure Storage Emulator.
- Added support for downloading service stats for blob, table, and queue services to check geo-replication status.
- Added download_to_file_async function in cloud_blob class.
- Added upload_from_file_async function in cloud_block_blob and cloud_page_blob classes.
- The HTTP status code and extended error information are populated when the table service returns an error.
- The SAS token returned by the get_shared_access_signature functions does not include a question mark (?) prefix.
- The storage_credentials class stores SAS tokens without a question mark (?) prefix.
- Added support for accepting SAS URIs to tables and queues.
- Fixed error where table query filter strings containing special characters were not encoded correctly.
- Fixed intermittent error where authentication fails when trying to update a queue message.
- Fixed a race condition causing invalid handle errors when sending parallel requests right after loading the module.
- The ETag is populated on table entities returned from table retrieve operations.
- Changed retry policies to not retry when HTTP status code 408 is received.
- Added check to prevent uploading metadata values that are empty or consist entirely of whitespace.
- Changed the storage_uri class to permit specifying only a secondary URI.
- No value is set for the server timeout by default, which means the service's default value will be in affect unless the caller specifies a value.
- Added more parameter validation.
- Removed the constness from the return values of binary_value, datetime_value, guid_value, and string_value functions in entity_property class.
- Removed the constness from the return values of filter_string and select_columns functions in table_query class.
- Changed many functions to accept pass-by-value arguments to support move semantics.
- Changed many functions to accept pass-by-reference arguments or return references as a performance improvement.
- Made some constructors explicit to avoid implicit conversions. This affects these classes:
canonicalizer, shared_key_blob_queue_canonicalizer, shared_key_lite_blob_queue_canonicalizer, shared_key_table_canonicalizer, shared_key_lite_table_canonicalizer,
sas_authentication_handler, shared_key_authentication_handler, continuation_token, retry_info, retry_policy, cloud_queue_message, cloud_queue_client,
basic_common_retry_policy, cloud_client - Major performance improvement when executing many requests in parallel.
- Minor bug fixes and performance improvements.