Skip to content

Releases: Azure/azure-storage-cpp

Storage Client Library v2.4.0

13 Sep 05:59
Compare
Choose a tag to compare

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

08 Mar 07:06
Compare
Choose a tag to compare

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

31 Dec 03:10
Compare
Choose a tag to compare

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

14 Sep 05:38
Compare
Choose a tag to compare

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

06 Aug 09:28
Compare
Choose a tag to compare

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

28 Apr 09:51
Compare
Choose a tag to compare

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

27 Mar 04:17
Compare
Choose a tag to compare
Pre-release

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

04 Feb 08:41
Compare
Choose a tag to compare
Pre-release

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

19 Dec 03:10
Compare
Choose a tag to compare
Pre-release

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

16 May 00:36
Compare
Choose a tag to compare
Pre-release

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.