You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -499,7 +499,13 @@ public static async Task TransferUrlToAzureBlob(CloudStorageAccount account)
499
499
}
500
500
```
501
501
502
-
One important use case for this feature is when you need to move data from another cloud service (e.g. AWS) to Azure. As long as you have a URL that gives you access to the resource, you can easily move that resource into Azure Blobs by using the `TransferManager.CopyAsync` method. This method also introduces a new boolean parameter. Setting this parameter to `true` indicates that we want to do an asynchronous server-side copy. Setting this parameter to `false` indicates a synchronous copy - meaning the resource is downloaded to our local machine first, then uploaded to Azure Blob. However, synchronous copy is currently only available for copying from one Azure Storage resource to another.
502
+
One important use case for this feature is when you need to move data from another cloud service (e.g. AWS) to Azure. As long as you have a URL that gives you access to the resource, you can easily move that resource into Azure Blobs by using the `TransferManager.CopyAsync` method. This method also introduces a **CopyMethod** parameter. The following table shows the available options for this parameter:
503
+
504
+
| Member name | Value | Description |
505
+
| --- | --- | --- |
506
+
| SyncCopy | 0 | Download data from source to memory, and upload the data from memory to destination. Currently only available for copying from one Azure Storage resource to another. |
507
+
| ServiceSideAsyncCopy | 1 | Send a start copy request to Azure Storage to let it do the copying; monitor the copy operation progress until the copy is completed. |
508
+
| ServiceSideSyncCopy | 2 | Copy content of each chunk with with [Put Block From URL](/rest/api/storageservices/put-block-from-url), [Append Block From URL](/rest/api/storageservices/append-block-from-url), or [Put Page From URL](/rest/api/storageservices/put-page-from-url). |
503
509
504
510
## Copy a blob
505
511
@@ -522,7 +528,7 @@ public static async Task TransferAzureBlobToAzureBlob(CloudStorageAccount accoun
@@ -557,7 +563,7 @@ public static async Task TransferAzureBlobToAzureBlob(CloudStorageAccount accoun
557
563
}
558
564
```
559
565
560
-
In this example, we set the boolean parameter in `TransferManager.CopyAsync` to `false` to indicate that we want to do a synchronous copy. This means that the resource is downloaded to our local machine first, then uploaded to Azure Blob. The synchronous copy option is a great way to ensure that your copy operation has a consistent speed. In contrast, the speed of an asynchronous server-side copy is dependent on the available network bandwidth on the server, which can fluctuate. However, synchronous copy may generate additional egress cost compared to asynchronous copy. The recommended approach is to use synchronous copy in an Azure VM that is in the same region as your source storage account to avoid egress cost.
566
+
In this example, we set the boolean parameter in `TransferManager.CopyAsync` to `CopyMethod.SyncCopy` to indicate that we want to do a synchronous copy. This means that the resource is downloaded to our local machine first, then uploaded to Azure Blob. The synchronous copy option is a great way to ensure that your copy operation has a consistent speed. In contrast, the speed of an asynchronous server-side copy is dependent on the available network bandwidth on the server, which can fluctuate. However, synchronous copy may generate additional egress cost compared to asynchronous copy. The recommended approach is to use synchronous copy in an Azure VM that is in the same region as your source storage account to avoid egress cost.
561
567
562
568
The data movement application is now complete. [The full code sample is available on GitHub](https://github.com/azure-samples/storage-dotnet-data-movement-library-app).
0 commit comments