Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

Commit

Permalink
Merge pull request #252 from jehine-MSFT/master
Browse files Browse the repository at this point in the history
Storage Client Library 7.0.0
  • Loading branch information
jehine-MSFT committed Apr 6, 2016
2 parents 87b84b3 + b4699d3 commit f60d9f3
Show file tree
Hide file tree
Showing 225 changed files with 6,344 additions and 9,852 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,9 @@ Test/Common/TestConfigurations.xml
# Test Results
TestResults/

# Test Config
Test/Common/TestConfigurations.xml

# Mac development
.DS_Store

Expand Down
22 changes: 22 additions & 0 deletions BreakingChanges.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
Tracking Breaking Changes since 6.0

- All: Support for 2015-07-08 REST version. Please see our REST API documentation and blogs for information about the related added features. If you are using the Storage Emulator, please update to Emulator version 4.3.
- All (WinRT): All apis now return Task objects instead of IAsync* objects. Please see our blog post for more info.
- All: TestConfigurations.xml has been deleted and added to the .gitignore file to keep users from accidentally leaking their credentials. To continue running tests, simply add the same file back after you get the latest code.
- All: Virtualized all service call APIs and unsealed their classes.
- All: Updated the UserAgent string to match the Azure Storage standard.
- All: The dnx and net target frameworks have been unified, and DNXCore target framework has been renamed to Dotnet5.4. All DNX4.5.1 projects will take a dependency on the regular Windows Desktop dll.
- All: Windows Runtime no longer uses WrappedStorageExceptions or HResults. Catch StorageException and check HTTP status code instead.
- All: SetServiceProperties APIs no longer instantiates Logging, HourMetrics, MinuteMetrics, or Cors instance variables. New LoggingProperties, MetricsProperties, and CorsProperties objects will need to be set for those variables before they can be assigned.
- All: LoggingProperties and MetricsProperties Version now defaults to "1.0" or Constants.AnalyticsConstants.MetricsVersionV1 or LoggingVersionV1.
- All: Removed deprecated SharedKeyLiteAuthenticationHandler, use SharedKeyAuthenticationHandler instead.
- All: Removed deprecated request options setters on the *Client class object in favor of setting request options on Client's DefaultRequestOptions object.
- All: When creating a SAS token with a non-null SharedAccessProtocol, only valid enum values are permitted. All other values will now throw an ArgumentException.
- Blobs: Removed deprecated (Begin/End)StartCopyFromBlob(Async) APIs in favor of using (Begin/End)StartCopy(Async) APIs.
- Blobs: Removed deprecated GetSubdirectoryReference API in favor of GetDirectoryReference.
- Blobs: Removed FileMode parameter for UploadFromFile* and AppendFromFile* APIs since there is only 1 valid option (FileMode.Open).
- Blobs: When downloading blob to local file fails, file created for download will be cleaned up.
- Blobs: proposedLeaseId for minimum AcquireLease API overloads defaults to null.
- Tables: Removed deprecated AtomPub payloadFormat support.
- Tables: Fixed a bug in table batch where storage exceptions resulted in operation contexts with incorrect HttpStatusMessage.
- Tables: Batching validation was added for batch sizes exceeding 100 operations.
- Tables: Batching validation was added for null partition keys and row keys.
- Tables: Removed deprecated overloads for Table.Retrieve APIs.
- Files: When downloading file to local system file fails, file created for download will be cleaned up.
- Queues: Removed deprecated EndBeginClear API in favor of EndClear.

Tracking Breaking Changes since 5.0

Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ If you intend to contribute to the project, please make sure you've followed the
The Azure Storage development team uses Visual Studio so instructions will be tailored to that preference. However, any preferred IDE or other toolset should be usable.

### Install
* .Net 4.5.1
* .Net 4.0
* Visual Studio 2013. If you want to work with the CoreCLR SDK, you will need Visual Studio 2015. Note not all of the non-CoreCLR SDKs work in VS 2015, so you may need to develop with both 2013 and 2015 if you take a dependency on multiple runtimes.
* [StyleCop](http://stylecop.codeplex.com/) checks your code’s style – spacing, comments, etc. You can run this from the Tools menu in Visual Studio or by right clicking the project/folder you’d like to run it on.
* Clone the source code from GitHub.
Expand Down
311 changes: 150 additions & 161 deletions Lib/ClassLibraryCommon/Blob/CloudAppendBlob.cs

Large diffs are not rendered by default.

457 changes: 162 additions & 295 deletions Lib/ClassLibraryCommon/Blob/CloudBlob.cs

Large diffs are not rendered by default.

122 changes: 61 additions & 61 deletions Lib/ClassLibraryCommon/Blob/CloudBlobClient.cs

Large diffs are not rendered by default.

293 changes: 152 additions & 141 deletions Lib/ClassLibraryCommon/Blob/CloudBlobContainer.cs

Large diffs are not rendered by default.

22 changes: 11 additions & 11 deletions Lib/ClassLibraryCommon/Blob/CloudBlobDirectory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace Microsoft.WindowsAzure.Storage.Blob
/// Represents a virtual directory of blobs, designated by a delimiter character.
/// </summary>
/// <remarks>Containers, which are encapsulated as <see cref="CloudBlobContainer"/> objects, hold directories, and directories hold block blobs and page blobs. Directories can also contain sub-directories.</remarks>
public sealed partial class CloudBlobDirectory
public partial class CloudBlobDirectory
{
#if SYNC
/// <summary>
Expand All @@ -39,7 +39,7 @@ public sealed partial class CloudBlobDirectory
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <returns>An enumerable collection of objects that implement <see cref="IListBlobItem"/> and are retrieved lazily.</returns>
[DoesServiceRequest]
public IEnumerable<IListBlobItem> ListBlobs(bool useFlatBlobListing = false, BlobListingDetails blobListingDetails = BlobListingDetails.None, BlobRequestOptions options = null, OperationContext operationContext = null)
public virtual IEnumerable<IListBlobItem> ListBlobs(bool useFlatBlobListing = false, BlobListingDetails blobListingDetails = BlobListingDetails.None, BlobRequestOptions options = null, OperationContext operationContext = null)
{
return this.Container.ListBlobs(this.Prefix, useFlatBlobListing, blobListingDetails, options, operationContext);
}
Expand All @@ -51,7 +51,7 @@ public IEnumerable<IListBlobItem> ListBlobs(bool useFlatBlobListing = false, Blo
/// <param name="currentToken">A <see cref="BlobContinuationToken"/> object returned by a previous listing operation.</param>
/// <returns>A <see cref="BlobResultSegment"/> object.</returns>
[DoesServiceRequest]
public BlobResultSegment ListBlobsSegmented(BlobContinuationToken currentToken)
public virtual BlobResultSegment ListBlobsSegmented(BlobContinuationToken currentToken)
{
return this.ListBlobsSegmented(false, BlobListingDetails.None, null /* maxResults */, currentToken, null /* options */, null /* operationContext */);
}
Expand All @@ -69,7 +69,7 @@ public BlobResultSegment ListBlobsSegmented(BlobContinuationToken currentToken)
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <returns>A <see cref="BlobResultSegment"/> object.</returns>
[DoesServiceRequest]
public BlobResultSegment ListBlobsSegmented(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext)
public virtual BlobResultSegment ListBlobsSegmented(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext)
{
return this.Container.ListBlobsSegmented(this.Prefix, useFlatBlobListing, blobListingDetails, maxResults, currentToken, options, operationContext);
}
Expand All @@ -84,7 +84,7 @@ public BlobResultSegment ListBlobsSegmented(bool useFlatBlobListing, BlobListing
/// <param name="state">A user-defined object that will be passed to the callback delegate.</param>
/// <returns>An <see cref="ICancellableAsyncResult"/> that references the asynchronous operation.</returns>
[DoesServiceRequest]
public ICancellableAsyncResult BeginListBlobsSegmented(BlobContinuationToken currentToken, AsyncCallback callback, object state)
public virtual ICancellableAsyncResult BeginListBlobsSegmented(BlobContinuationToken currentToken, AsyncCallback callback, object state)
{
return this.BeginListBlobsSegmented(false, BlobListingDetails.None, null /* maxResults */, currentToken, null /* options */, null /* operationContext */, callback, state);
}
Expand All @@ -104,7 +104,7 @@ public ICancellableAsyncResult BeginListBlobsSegmented(BlobContinuationToken cur
/// <param name="state">A user-defined object that will be passed to the callback delegate.</param>
/// <returns>An <see cref="ICancellableAsyncResult"/> that references the asynchronous operation.</returns>
[DoesServiceRequest]
public ICancellableAsyncResult BeginListBlobsSegmented(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
public virtual ICancellableAsyncResult BeginListBlobsSegmented(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext, AsyncCallback callback, object state)
{
return this.Container.BeginListBlobsSegmented(this.Prefix, useFlatBlobListing, blobListingDetails, maxResults, currentToken, options, operationContext, callback, state);
}
Expand All @@ -115,7 +115,7 @@ public ICancellableAsyncResult BeginListBlobsSegmented(bool useFlatBlobListing,
/// </summary>
/// <param name="asyncResult">An <see cref="IAsyncResult"/> that references the pending asynchronous operation.</param>
/// <returns>A <see cref="BlobResultSegment"/> object.</returns>
public BlobResultSegment EndListBlobsSegmented(IAsyncResult asyncResult)
public virtual BlobResultSegment EndListBlobsSegmented(IAsyncResult asyncResult)
{
return this.Container.EndListBlobsSegmented(asyncResult);
}
Expand All @@ -128,7 +128,7 @@ public BlobResultSegment EndListBlobsSegmented(IAsyncResult asyncResult)
/// <param name="currentToken">A continuation token returned by a previous listing operation.</param>
/// <returns>A <see cref="Task{T}"/> object of type <see cref="BlobResultSegment"/>.</returns>
[DoesServiceRequest]
public Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken currentToken)
public virtual Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken currentToken)
{
return this.ListBlobsSegmentedAsync(currentToken, CancellationToken.None);
}
Expand All @@ -141,7 +141,7 @@ public Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken cur
/// <param name="cancellationToken">A <see cref="CancellationToken"/> to observe while waiting for a task to complete.</param>
/// <returns>A <see cref="Task{T}"/> object of type <see cref="BlobResultSegment"/>.</returns>
[DoesServiceRequest]
public Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken currentToken, CancellationToken cancellationToken)
public virtual Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken currentToken, CancellationToken cancellationToken)
{
return AsyncExtensions.TaskFromApm(this.BeginListBlobsSegmented, this.EndListBlobsSegmented, currentToken, cancellationToken);
}
Expand All @@ -159,7 +159,7 @@ public Task<BlobResultSegment> ListBlobsSegmentedAsync(BlobContinuationToken cur
/// <param name="operationContext">An <see cref="OperationContext"/> object that represents the context for the current operation.</param>
/// <returns>A <see cref="Task{T}"/> object of type <see cref="BlobResultSegment"/>.</returns>
[DoesServiceRequest]
public Task<BlobResultSegment> ListBlobsSegmentedAsync(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext)
public virtual Task<BlobResultSegment> ListBlobsSegmentedAsync(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext)
{
return this.ListBlobsSegmentedAsync(useFlatBlobListing, blobListingDetails, maxResults, currentToken, options, operationContext, CancellationToken.None);
}
Expand All @@ -178,7 +178,7 @@ public Task<BlobResultSegment> ListBlobsSegmentedAsync(bool useFlatBlobListing,
/// <param name="cancellationToken">A <see cref="CancellationToken"/> to observe while waiting for a task to complete.</param>
/// <returns>A <see cref="Task{T}"/> object of type <see cref="BlobResultSegment"/>.</returns>
[DoesServiceRequest]
public Task<BlobResultSegment> ListBlobsSegmentedAsync(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
public virtual Task<BlobResultSegment> ListBlobsSegmentedAsync(bool useFlatBlobListing, BlobListingDetails blobListingDetails, int? maxResults, BlobContinuationToken currentToken, BlobRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken)
{
return AsyncExtensions.TaskFromApm(this.BeginListBlobsSegmented, this.EndListBlobsSegmented, useFlatBlobListing, blobListingDetails, maxResults, currentToken, options, operationContext, cancellationToken);
}
Expand Down
Loading

0 comments on commit f60d9f3

Please sign in to comment.