forked from Azure/azure-storage-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changelog.txt
149 lines (138 loc) · 9.77 KB
/
Changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Azure Storage Client Library for C++
History of Changes
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
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
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 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.
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.
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<typename result_type> 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.
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
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
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
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.
Changes in v0.2:
- Added sample projects for getting started with the library.
- Removed blob_continuation_token typedef (use continuation_token instead).
- Renamed table_entity_property class to entity_property.
- Renamed entity_property_type enum to edm_type.
- Renamed query_payload_format enum to table_payload_format.
- Minor bug fixes and performance improvements.
Changes in v0.1:
- Initial release of the library including support for blob, table, and queue storage abstractions and providing additional functionality such as retry logic, authentication, logging, and more.