├── tools
├── apidoc
│ └── .gitignore
├── strongnamekeys
│ └── fake
│ │ └── windows.snk
├── nupkg
│ ├── buildDebugNupkg.cmd
│ └── buildNupkg.cmd
├── AssemblyInfo
│ └── SharedAssemblyInfo.cs
└── scripts
│ └── InjectBuildNumber.ps1
├── .nuget
├── NuGet.exe
└── NuGet.Config
├── lib
├── dnxcore50
│ └── XUnitForMsTest.dll
├── TransferEnumerators
│ ├── INameResolver.cs
│ ├── ListContinuationToken.cs
│ ├── FileToAzureBlobNameResolver.cs
│ ├── AzureFileToAzureNameResolver.cs
│ ├── TransferEnumeratorBase.cs
│ ├── AzureBlobToAzureBlobNameResolver.cs
│ ├── ErrorEntry.cs
│ ├── ITransferEnumerator.cs
│ ├── FileToAzureFileNameResolver.cs
│ ├── FileEntry.cs
│ ├── DirectoryEntry.cs
│ ├── AzureBlobEntry.cs
│ ├── TransferEntry.cs
│ ├── AzureFileEntry.cs
│ ├── NameResolverHelper.cs
│ ├── AzureFileDirectoryEntry.cs
│ ├── FileListContinuationToken.cs
│ ├── AzureFileListContinuationToken.cs
│ └── TaskQueue.cs
├── AssemblyInfo.cs
├── TransferJobs
│ ├── TransferLocationType.cs
│ ├── TransferMethod.cs
│ ├── TransferJobStatus.cs
│ └── TransferLocation.cs
├── JournalItem.cs
├── TransferControllers
│ ├── ITransferController.cs
│ └── ServiceSideSyncCopyControllers
│ │ ├── ServiceSideSyncCopySource
│ │ ├── IRangeBasedSourceHandler.cs
│ │ ├── ISourceHandler.cs
│ │ └── PageBlobSourceHandler.cs
│ │ └── ServiceSideSyncCopyDest
│ │ ├── BlockBlobDestHandler.cs
│ │ ├── AppendBlobDestHandler.cs
│ │ ├── PageBlobDestHandler.cs
│ │ └── IDestHandler.cs
├── TestHook
│ ├── TestHookCallbacks.cs
│ └── FaultInjectionPoint.cs
├── GlobalMemoryStatusNativeMethods.cs
├── packages.config
├── TransferStatusHelpers
│ ├── TransferData.cs
│ ├── TransferDownloadBuffer.cs
│ ├── TransferDataState.cs
│ ├── ReadDataState.cs
│ └── SharedTransferData.cs
├── CopyMethod.cs
├── LongPathFile.cs
├── SingleTransferContext.cs
├── TransferCallbacks.cs
├── DirectoryTransferContext.cs
├── TransferEventArgs.cs
├── TransferOptions
│ ├── DirectoryOptions.cs
│ └── CopyOptions.cs
├── Interop
│ └── Interop.OSX.cs
├── Exceptions
│ └── TransferSkippedException.cs
└── PreserveSMBPermissions.cs
├── samples
├── PreserveFilePropertiesSamples
│ ├── netcore
│ │ ├── Config.json
│ │ ├── azure.png
│ │ └── PreserveFilePropertiesSamples.csproj
│ ├── PreserveFilePropertiesSamples
│ │ ├── azure.png
│ │ ├── packages.config
│ │ ├── App.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── FileOperations.cs
│ ├── PreserveFilePropertiesSamples_k.sln
│ └── PreserveFilePropertiesSamples.sln
├── DataMovementSamples
│ ├── DataMovementSamples
│ │ ├── azure.png
│ │ ├── App.config
│ │ ├── packages.config
│ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ ├── netcore
│ │ └── DataMovementSamples
│ │ │ ├── Config.json
│ │ │ ├── azure.png
│ │ │ ├── DataContractSerializerExtensions.cs
│ │ │ └── DataMovementSamples.csproj
│ ├── DataMovementSamples.sln
│ └── DataMovementSamples_k.sln
└── S3ToAzureSample
│ ├── S3ToAzureSample
│ ├── App.config
│ ├── packages.config
│ └── Properties
│ │ └── AssemblyInfo.cs
│ └── S3ToAzureSample.sln
├── netcore
├── DMLibTest
│ ├── Constants.cs
│ ├── XunitWrapper
│ │ ├── Classes.cs
│ │ ├── DisableTestParallelization.cs
│ │ ├── TestCategoryDiscoverer.cs
│ │ └── Attributes.cs
│ ├── DataContractSerializerExtensions.cs
│ ├── TestStartEndAttribute.cs
│ ├── CloudBlobDirectoryExtensions.cs
│ ├── CloudAppendBlobExtensions.cs
│ ├── TestData.xml
│ ├── XunitLogger.cs
│ ├── CloudFileDirectoryExtensions.cs
│ ├── CloudFileShareExtensions.cs
│ ├── CloudPageBlobExtensions.cs
│ └── CloudBlockBlobExtensions.cs
├── MsTestLib
│ ├── StreamWriterExtensions.cs
│ ├── DateTimeExtensions.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── MsTestLib.csproj
├── Microsoft.Azure.Storage.DataMovement
│ └── DataContractSerializationExtensions.cs
├── Build.cmd
└── DMTestLib
│ └── DMTestLib.csproj
├── wrap
└── XUnitForMsTest
│ └── project.json
├── .github
└── ISSUE_TEMPLATE.md
├── test
├── DMLibTestCodeGen
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── App.config
│ ├── TransferDirectionExtensions.cs
│ └── Program.cs
├── DMLibTest
│ ├── Framework
│ │ ├── IDataInfo.cs
│ │ ├── DMLibWrapper.cs
│ │ ├── TestResult.cs
│ │ ├── FileNativeMethodsExtension.cs
│ │ ├── MultiDirectionTestInfo.cs
│ │ ├── DMLibInputHelper.cs
│ │ ├── AssemblyInitCleanup.cs
│ │ ├── SharedAccessPermissions.cs
│ │ ├── TestExecutionOptions.cs
│ │ ├── DataAdaptor.cs
│ │ ├── URIBlobDataAdaptor.cs
│ │ └── CloudObjectExtensions.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── packages.config
│ ├── app.config
│ ├── TestData.xml
│ └── Util
│ │ └── DMLibTestStream.cs
├── DMTestLib
│ ├── MultiDirectionTag.cs
│ ├── DMLibCopyMethod.cs
│ ├── DMLibTestContext.cs
│ ├── ITestDirection.cs
│ ├── MultiDirectionTestClassAttribute.cs
│ ├── MultiDirectionTestContext.cs
│ ├── MultiDirectionTestMethodAttribute.cs
│ ├── TestMethodDirection.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── DMLibDataType.cs
│ ├── MultiDirectionTestMethod.cs
│ ├── MultiDirectionTestMethodSetAttribute.cs
│ └── DirectionFilter.cs
├── DMLibTest_NetStandard
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── packages.config
│ └── app.config
└── MsTestLib
│ ├── Exceptions.cs
│ ├── MethodConfig.cs
│ ├── ILogger.cs
│ └── ClassConfig.cs
├── CONTRIBUTING.md
├── LICENSE
├── .gitattributes
└── DataMovement_k.sln
/tools/apidoc/.gitignore:
--------------------------------------------------------------------------------
1 | Help/
--------------------------------------------------------------------------------
/.nuget/NuGet.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/.nuget/NuGet.exe
--------------------------------------------------------------------------------
/lib/dnxcore50/XUnitForMsTest.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/lib/dnxcore50/XUnitForMsTest.dll
--------------------------------------------------------------------------------
/tools/strongnamekeys/fake/windows.snk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/tools/strongnamekeys/fake/windows.snk
--------------------------------------------------------------------------------
/samples/PreserveFilePropertiesSamples/netcore/Config.json:
--------------------------------------------------------------------------------
1 | {
2 | "StorageConnectionString": "DefaultEndpointsProtocol=http;AccountName=[AccountName];AccountKey=[AccountKey]"
3 | }
--------------------------------------------------------------------------------
/samples/PreserveFilePropertiesSamples/netcore/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/samples/PreserveFilePropertiesSamples/netcore/azure.png
--------------------------------------------------------------------------------
/samples/DataMovementSamples/DataMovementSamples/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/samples/DataMovementSamples/DataMovementSamples/azure.png
--------------------------------------------------------------------------------
/samples/DataMovementSamples/netcore/DataMovementSamples/Config.json:
--------------------------------------------------------------------------------
1 | {
2 | "StorageConnectionString": "DefaultEndpointsProtocol=http;AccountName=[AccountName];AccountKey=[AccountKey]"
3 | }
--------------------------------------------------------------------------------
/.nuget/NuGet.Config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/samples/DataMovementSamples/netcore/DataMovementSamples/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/samples/DataMovementSamples/netcore/DataMovementSamples/azure.png
--------------------------------------------------------------------------------
/samples/PreserveFilePropertiesSamples/PreserveFilePropertiesSamples/azure.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Azure/azure-storage-net-data-movement/HEAD/samples/PreserveFilePropertiesSamples/PreserveFilePropertiesSamples/azure.png
--------------------------------------------------------------------------------
/netcore/DMLibTest/Constants.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Microsoft.Azure.Storage.Blob;
3 |
4 | namespace DMLibTest
5 | {
6 | internal static class Collections
7 | {
8 | public const string Global = "global";
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/netcore/DMLibTest/XunitWrapper/Classes.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Threading.Tasks;
5 |
6 | namespace Microsoft.VisualStudio.TestTools.UnitTesting
7 | {
8 | public abstract class TestContext
9 | { }
10 | }
11 |
--------------------------------------------------------------------------------
/netcore/MsTestLib/StreamWriterExtensions.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 |
3 | namespace MS.Test.Common.MsTestLib
4 | {
5 | internal static class StreamWriterExtensions
6 | {
7 | public static void Close(this StreamWriter writer)
8 | {
9 | writer.Dispose();
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/netcore/MsTestLib/DateTimeExtensions.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace MS.Test.Common.MsTestLib
4 | {
5 | public static class DateTimeExtensions
6 | {
7 | public static string ToLongTimeString(this DateTime dateTime)
8 | {
9 | return dateTime.ToString("h:mm:ss tt");
10 | }
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/wrap/XUnitForMsTest/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "1.0.0-*",
3 | "frameworks": {
4 | "dnxcore50": {
5 | "bin": {
6 | "assembly": "../../lib/dnxcore50/XUnitForMsTest.dll"
7 | }
8 | },
9 | "dnx451": {
10 | "bin": {
11 | "assembly": "../../lib/dnx451/XUnitForMsTest.dll"
12 | }
13 | }
14 | }
15 | }
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | ### Which service(blob, file) does this issue concern?
2 |
3 |
4 | ### Which version of the SDK was used?
5 |
6 |
7 | ### On which platform were you using? (.Net Framework version or .Net Core version, and OS version)
8 |
9 |
10 | ### How can the problem be reproduced? It'd be better if the code caused the problem can be shared.
11 |
12 |
13 | ### What problem was encountered?
14 |
15 |
16 | ### Have you found a mitigation/solution?
17 |
18 |
--------------------------------------------------------------------------------
/test/DMLibTestCodeGen/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/netcore/DMLibTest/XunitWrapper/DisableTestParallelization.cs:
--------------------------------------------------------------------------------
1 | // By default, xUnit runs tests in parallel. DMLibTest relies on a static class
2 | // for logging (MS.Test.Common.MsTestLib.Test), and the architecture of the test
3 | // code doesn't enable a straightforward way to make to make it thread-safe.
4 | // http://xunit.github.io/docs/running-tests-in-parallel.html
5 | // http://xunit.github.io/docs/capturing-output.html
6 | [assembly: Xunit.CollectionBehavior(DisableTestParallelization = true)]
--------------------------------------------------------------------------------
/test/DMLibTest/Framework/IDataInfo.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Microsoft Corporation
4 | //
5 | //------------------------------------------------------------------------------
6 | namespace DMLibTest
7 | {
8 | public interface IDataInfo
9 | {
10 | string ToString();
11 |
12 | IDataInfo Clone();
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/test/DMTestLib/MultiDirectionTag.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Microsoft Corporation
4 | //
5 | //------------------------------------------------------------------------------
6 | namespace DMLibTestCodeGen
7 | {
8 | public static class MultiDirectionTag
9 | {
10 | public const string MultiDirection = "multiDirection";
11 | public const string Async = "async";
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/test/DMTestLib/DMLibCopyMethod.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Microsoft Corporation
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | using System;
8 |
9 | namespace DMLibTestCodeGen
10 | {
11 | [Flags]
12 | public enum DMLibCopyMethod : int
13 | {
14 | SyncCopy = 0x01,
15 | ServiceSideAsyncCopy = 0x02,
16 | ServiceSideSyncCopy = 0x04,
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/test/DMTestLib/DMLibTestContext.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Microsoft Corporation
4 | //
5 | //------------------------------------------------------------------------------
6 | namespace DMLibTestCodeGen
7 | {
8 | public class DMLibTestContext : MultiDirectionTestContext
9 | {
10 | public static DMLibCopyMethod CopyMethod
11 | {
12 | get;
13 | set;
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Collaborate & Contribute
2 |
3 | We gladly accept community contributions.
4 |
5 | - Issues: Please report bugs using the Issues section of GitHub
6 | - Forums: Interact with the development teams on StackOverflow or the Microsoft Azure Forums
7 | - Source Code Contributions: Please follow the [contribution guidelines for Microsoft Azure open source](http://azure.github.io/guidelines.html) that details information on onboarding as a contributor
8 |
9 | For general suggestions about Microsoft Azure please use our [UserVoice forum](http://feedback.azure.com/forums/34192--general-feedback).
10 |
--------------------------------------------------------------------------------
/netcore/DMLibTest/DataContractSerializerExtensions.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using System.Runtime.Serialization;
3 |
4 | namespace DMLibTest
5 | {
6 | internal static class DataContractSerializerExtensions
7 | {
8 | public static void Serialize(this DataContractSerializer serializer, Stream stream, object graph)
9 | {
10 | serializer.WriteObject(stream, graph);
11 | }
12 |
13 | public static object Deserialize(this DataContractSerializer serializer, Stream stream)
14 | {
15 | return serializer.ReadObject(stream);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/lib/TransferEnumerators/INameResolver.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // Copyright (c) Microsoft Corporation
4 | //
5 | //------------------------------------------------------------------------------
6 |
7 | namespace Microsoft.Azure.Storage.DataMovement.TransferEnumerators
8 | {
9 | ///
10 | /// INameResolver interface.
11 | ///
12 | internal interface INameResolver
13 | {
14 | string ResolveName(TransferEntry sourceEntry);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/netcore/DMLibTest/TestStartEndAttribute.cs:
--------------------------------------------------------------------------------
1 | using MS.Test.Common.MsTestLib;
2 | using System.Reflection;
3 | using Xunit.Sdk;
4 |
5 | namespace DMLibTest
6 | {
7 | public class TestStartEndAttribute : BeforeAfterTestAttribute
8 | {
9 | public override void Before(MethodInfo methodUnderTest)
10 | {
11 | Test.Start(methodUnderTest.DeclaringType.Name, methodUnderTest.Name);
12 | }
13 |
14 | public override void After(MethodInfo methodUnderTest)
15 | {
16 | Test.End(methodUnderTest.DeclaringType.Name, methodUnderTest.Name);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/netcore/DMLibTest/XunitWrapper/TestCategoryDiscoverer.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using Xunit.Abstractions;
3 | using Xunit.Sdk;
4 |
5 | public class TestCategoryDiscoverer : ITraitDiscoverer
6 | {
7 | public IEnumerable> GetTraits(IAttributeInfo traitAttribute)
8 | {
9 | IEnumerator